今天,我尝试将setState
函数传递给util函数,并在传递函数方面得到了不同的结果。我想知道为什么这会有所不同。
我有一个这样的方法:
function handleChange(setState) {
setState(oldState => { ... oldState, ... someNewAttributes}
}
当我尝试将其传递给我时,它给我一个错误(“ TypeError:无法读取未定义的属性'updater'”)
handleChange(this.setState);
但是如果我把它包裹在一个兰巴中,它就像一个护身符一样工作:
handleChange((x) => this.setState(x));
有人可以用Javascipt机制解释这一点,为什么会有所不同?