【发布时间】:2019-02-26 17:50:51
【问题描述】:
我正在尝试更新我的状态:
inputData: {
id: '',
inputArr: ['']
}
从我从我的州获得的表格中,我像这样生成他:
inner = arr.input.map((inputs, index) => (
<li key={index} name={index} id={inputs.id}>
<label>{inputs.inputLabel}</label>
<input
// value={inputs.inputValue}
type={inputs.inputType}
onChange={this.handleChangeInp}
/>
</li>
))
它将有多个输入,所以我希望将它们的所有输入按顺序添加到数组中,以便稍后提取它,但是我的 handleChange 函数似乎不起作用,任何人都知道为什么(我无法获得 ID我正在传递事件,也没有更新数组)?
handleChangeInp = e => {
const id = e.target.id;
console.log(`the id is ${id}`);
const index = Number(e.target.name);
const inputData = this.state.inputData.inputArr.map((ing, i) => {
console.log(i);
i == index ? e.target.value : ing;
});
}
感谢您的帮助!
【问题讨论】:
-
您问我们需要更多数据来回答的一个问题是关于更新您的阵列,
inputData。您是否希望您的数组只是一个整数列表(即索引)? -
InputData 它只是我在标签、类型和值标签中放入的三个字符串,它们真的与我正在谈论的问题有什么关系吗?
-
是的。当您使用
map函数时,您将用一组新数据替换数组的内容。查看您的handleChangeInp函数。你映射 inputData 并且index等于i,你用单个字符串e.target.value替换。
标签: arrays reactjs input state