Javascript 反应类型错误:this.state.descriptions.map不是函数
我正在试图纠正这个错误 我试图做的是呈现一个由以下函数构建的自动表单:Javascript 反应类型错误:this.state.descriptions.map不是函数,javascript,reactjs,Javascript,Reactjs,我正在试图纠正这个错误 我试图做的是呈现一个由以下函数构建的自动表单: let descriptionsForm = ( <form> {this.state.descriptions.map((description, index) => ( <Input key={index} elementType={description.elementTyp
let descriptionsForm = (
<form>
{this.state.descriptions.map((description, index) => (
<Input
key={index}
elementType={description.elementType}
elemenyConfig={description.elementConfig}
value={description.value}
invalid={!description.valid}
shouldValidate={description.validation}
touched={description.touched}
changed={(event) => this.descriptionInputChangedHandler(event, index)}
/>
))}
</form>
)
descriptionInputChangedHandler = (event, index) => {
console.log("ORIGINAL: ", this.state.descriptions)
const updatedDescriptions = {
...this.state.descriptions
};
const updatedDescriptionElement = {
...updatedDescriptions[index]
};
updatedDescriptionElement.value = event.target.value;
updatedDescriptionElement.valid = this.checkValidity(updatedDescriptionElement.value, updatedDescriptionElement.validation);
updatedDescriptionElement.touched = true;
updatedDescriptions[index] = updatedDescriptionElement;
let formIsValid = true;
for (let index in updatedDescriptions) {
formIsValid = updatedDescriptions[index].valid && formIsValid;
}
console.log("UPDATED D: ", updatedDescriptions);
this.setState({descriptions: updatedDescriptions, descriptionFormIsValid: formIsValid})
}
console.log()看起来像这样,我认为应该是正确的
我想,既然在启动时正确地呈现了输入槽,那么在更新数据时应该会发生一些事情,我对此一无所知
感谢您的帮助。原始是一个数组,更新的D是一个对象
const updatedDescriptions = {
...this.state.descriptions
};
应该是:
const updatedDescriptions = [
...this.state.descriptions
];
你建议的解决方案是什么?很有效!谢谢你从控制台日志的第一行是否有“0”键中发现了这一点?是的,这是引起我注意的第一件事。原来的是[…],而另一个是{…}。