Javascript 如何在“中更改和保存嵌套数据”;“国家”;使用;“文本输入”;
物料界面版本:0.1 状态值:Javascript 如何在“中更改和保存嵌套数据”;“国家”;使用;“文本输入”;,javascript,reactjs,material-ui,jsx,Javascript,Reactjs,Material Ui,Jsx,物料界面版本:0.1 状态值: formatter = [ {currencyField: "", amountField: ""} {accountField: "", amountField: ""} {numberField: ""} ] 我需要使用material ui中的mui.TextField组件更改处于状态的对象的每个元素 let formatterJson = JSON.parse(this.state.formatter); le
formatter = [
{currencyField: "", amountField: ""}
{accountField: "", amountField: ""}
{numberField: ""}
]
我需要使用material ui
中的mui.TextField
组件更改处于状态的对象的每个元素
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
}}
/>
)
}
let-formatterJson=JSON.parse(this.state.formatter);
设jsx=[];
for(formatterJson中的常量属性){
push(this.getTextField(prop,formatterJson[prop]);
getTextField(键,objVal){
返回(
{
objVal=event.target.value
}}
/>
)
}
TextField值没有更改,因为发送到getTextField
的val
始终相同。为了解决这个问题,您在onChangeval=event.target.value代码>需要再次设置回组件
实现它的一种方法是,复制原始JSON并将其保存在状态中,当任何字段的值发生更改时,使用新更新的JSON相应地更新JSON setState