Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未定义变量,范围问题_Javascript_Reactjs - Fatal编程技术网

Javascript 未定义变量,范围问题

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

我正在尝试使用不变性帮助程序更新React中数组中对象的状态

  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}},
        })
    });
};