如何使用“文本输入”以“状态”更改和保存嵌套数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用“文本输入”以“状态”更改和保存嵌套数据相关的知识,希望对你有一定的参考价值。

Material-ui版本:0.1

状态值:

formatter = [
      currencyField: "", amountField: ""
      accountField: "", amountField: ""
      numberField: ""
    ]

我需要使用state中的mui.TextField组件来更改material-ui中对象的每个元素。

let formatterJson = JSON.parse(this.state.formatter);
let jsx = [];
for (const prop in formatterJson) 
jsx.push(this.getTextField(prop, formatterJson[prop]));

getTextField(key, objVal) 
        return (
            <mui.TextField
                style=fontSize: '14px', marginRight: '10px'
                name=key
                value=objVal
                fullWidth=false
                hintText=key
                onChange=(event) => 
                    objVal = event.target.value
                
            />
        )
    
答案

TextField值未更改,因为发送到valgetTextField始终相同。为了解决这个问题,您需要将onChange val = event.target.value;中的值重新设置回该组件。

实现它的一种方法是,复制原始JSON并将其保存在状态中,并且当任何字段的值更改时,请使用新近更新的json相应地更新json setState。

以上是关于如何使用“文本输入”以“状态”更改和保存嵌套数据的主要内容,如果未能解决你的问题,请参考以下文章

alertview 弹出不保存文本输入

以编程方式将新行添加到数据网格视图

将 redux 嵌套状态更改持久化到本地存储

如何定义输入以在 Easy admin 中保存浮点数?

使用来自状态的数据初始化文本输入默认值会为文本输入提供旧的状态数据

仅从已更改的文本输入中收集值