Javascript 试图将数据绑定到输入字段为';正在映射React中的
我试图使用onChange函数将我的状态值绑定到输入值Javascript 试图将数据绑定到输入字段为';正在映射React中的,javascript,arrays,reactjs,loops,object,Javascript,Arrays,Reactjs,Loops,Object,我试图使用onChange函数将我的状态值绑定到输入值 handleChange = event => { this.setState({ [event.target.name]: event.target.value }); }; 但是我的输入字段在映射中,我不知道如何为每次迭代指定输入字段特定的名称和值属性,这样onChange函数就可以工作了 当前代码: state = { row0: "", row1: "", row2
handleChange = event => {
this.setState({
[event.target.name]: event.target.value
});
};
但是我的输入字段在映射中,我不知道如何为每次迭代指定输入字段特定的名称和值属性,这样onChange函数就可以工作了
当前代码:
state = {
row0: "",
row1: "",
row2: "",
row3: "",
row4: ""
};
handleChange = event => {
this.setState({
[event.target.name]: event.target.value
});
};
handleSubmit = event => {
console.log(this.state);
};
render() {
const {
row,
editMode,
index,
selectedIdx,
startEditing,
stopEditing
} = this.props;
const rowLen = row.length;
return (
<React.Fragment>
{row.map((eachRow, i) => {
if (rowLen === i + 1) {
return (
<React.Fragment key={i}>
{editMode === true && index === selectedIdx ? (
<TableCell align="right">
<Input className="input_key" name={`row${i}`} />
<IconButton
onClick={this.handleSubmit}
className="ml-4"
aria-label="Filter list"
>
<i className="fas fa-check" />
</IconButton>
</TableCell>
) : (
<TableCell key={i} align="right">
{eachRow}
<IconButton
onClick={startEditing}
className="ml-4"
aria-label="Filter list"
>
<i className="fas fa-pen" />
</IconButton>
</TableCell>
)}
</React.Fragment>
);
} else {
return (
<React.Fragment key={i}>
{editMode === true && index === selectedIdx ? (
<TableCell>
<Input className="input_key" />
</TableCell>
) : (
<TableCell> {eachRow} </TableCell>
)}
</React.Fragment>
);
}
})}
</React.Fragment>
);
}
}
我需要弄清楚如何获取[event.target.name]:event.target.value,以便将数据绑定到状态可能有一种不同的方法将值绑定到状态任何东西都会有帮助,谢谢
此外,任何关于改进语法的旁注都将不胜感激
Hi,
Have a look here
https://stackoverflow.com/questions/29280445/reactjs-setstate-with-a-dynamic-key-name
inputChangeHandler: function (event) {
var stateObject = function () {
returnObj = {};
returnObj[this.target.id] = this.target.value;
return returnObj;
}.bind(event)();
this.setState(stateObject);
}
const daState = Object.keys(this.state).filter(state => {
return state === `row${i}`;
});
Hi,
Have a look here
https://stackoverflow.com/questions/29280445/reactjs-setstate-with-a-dynamic-key-name
inputChangeHandler: function (event) {
var stateObject = function () {
returnObj = {};
returnObj[this.target.id] = this.target.value;
return returnObj;
}.bind(event)();
this.setState(stateObject);
}