【发布时间】:2020-07-19 04:33:34
【问题描述】:
所以,我正在构建我的第一个 React 应用程序,它连接到 Flask 后端。我有一个从 Python 程序中获取字典的特定功能组件,并且我已将其保存在状态变量中(使用 useState、setVariables 完成)。 对象的类型
{'A':'x', 'B':'y', 'C':2},
这些都是变量,每次渲染都需要是动态的,只基于这个对象。 根据这个对象的当前状态,我想在
中显示这个对象的键值对<label>insertkey</label>
<input type="text" name = "insertkey" value=insertvalue/>
此外,我希望能够保存对这些值所做的任何更改,并将其写入状态变量,以便我可以将它们发送回我的 Flask 后端。
我尝试遍历每个,并插入如下:
const [fields, setFields] = useState({});
//intermediate code for fetching and setting the state
useEffect(() => {
for (const [key, value] of Object.entries(fields)) {
console.log(`${key}:${value}`);
insert = insert + `<label> ${key} </label> <input type = 'text' value = ${value} name = ${key} onChange=${changedData()}></input><br/>`
}
document.getElementById('fields_form').innerHTML = insert;
});
const changedData = (evt) => {
setFields({ [evt.target.name]: evt.target.value });
console.log(evt.target.value);
}
//some intermediate code
return (
<div>
<form onSubmit={submitFunction}>
<p id='fields_form'>
</p>
<input type="submit" value="Submit"></input>
</form>
</div>
);
但是当我这样做时,状态被设置为“未定义”。
我很想听听一些实现这一点的方法。也许这是一个非常小的修复,我错过了它,或者也许有一种不同的方法可能更合适。
【问题讨论】: