Javascript 未定义变量,范围问题
我正在尝试使用不变性帮助程序更新React中数组中对象的状态Javascript 未定义变量,范围问题,javascript,reactjs,Javascript,Reactjs,我正在尝试使用不变性帮助程序更新React中数组中对象的状态 handleChange = (itemInput, itemNum = null) => event => { this.setState({ rows: update(this.state.rows, { itemNum: {[itemInput]: {$set: event.target.value}}, }) }); } 我得到一个错误“Uncaug
handleChange = (itemInput, itemNum = null) => event => {
this.setState({
rows: update(this.state.rows, {
itemNum: {[itemInput]: {$set: event.target.value}},
})
});
}
我得到一个错误“UncaughtTypeError:无法读取未定义的属性'update'。原因是itemNum未定义,我不知道为什么(我知道它未定义,因为如果我用1替换它,例如,代码可以工作)。
这可能是一些范围问题:/感谢您提供有关如何解决该问题的建议
只是为了澄清变量都已定义,我可以在this.setState
之前对它们进行console.log
update
来自。我使用了“嵌套集合”下的示例,其中它们硬编码了值2,在我的示例中,它必须是itemNum
基本上,我想做的是
this.state.rows[itemNum][itemInput] = event.target.value
但我想React会让我觉得有点复杂
在构造函数中,我有
this.handleChange = this.handleChange.bind(this);
我用
onChange={this.handleChange(“searchType”,I)}
调用onChange,为什么在这里使用currying概念?()=>()=>
什么是更新?你能展示更新函数吗?你介意共享整个类吗?根据文档,itemNum必须是索引,itemInput必须是数组,只想看看这一部分
handleChange = (itemInput, itemNum = null) => event => {
this.setState({
rows: update(this.state.rows, {
[itemNum]: {[itemInput]: {$set: event.target.value}},
})
});
};