我有一个对象模型模式如下
this.state = {
data: {
audi: {
engine: '2.5',
gearbox: 'auto',
fuel: 'petrol'
},
bmw: {
engine: '3.0',
gearbox: 'auto',
fuel: 'petrol'
},
merc: {
engine: '6.3',
gearbox: 'manual',
fuel: 'petrol'
}
}
}
我的目标是:
循环数据并渲染
将 HTML 中的值更改映射到 this.state.data 对象中的相应键
我没有使用数组,因为在发布它时它必须看起来像上面的对象模式。
目前我正在尝试这样做:
//To render
Object.entries(this.state.data).map((x,index) =>
<p>x.key</p> //Trying to reach 'audi' with x.key
// Render each KPV in object
{x.key}: <input key={index} onChange={this.handleChange} value={x.value}/>
)
然后更新同一状态模型中的相应值:
// To update the state model with changed values
setData = (key, val) => {
this.setState(state => ({
data: {
...state.data,
obj: { [key]: val },
//Don't know how to map to state properly!
}
}));
};
// Handle input change
handleChange = key => e => {
this.setData(key, e.target.value);
};
请任何人就这种方法向我提出建议,非常感谢:)
哆啦的时光机
繁星coding
杨__羊羊
相关分类