我有一个React.js组件,我想定义一个更高阶的方法 -
updater: function (path) {
return function (value) {
this.setState(this.modules.setter.set(this.state, path, value))
}
}
this.modules.setter.set
返回状态的更新版本,并在指定的value
内放置新的path
。
希望能够定义这样的方法 -
updateUserStreet: this.updater('user.address.street')
创建所需的this.modules.setter.set
我没有问题,但是我在使用高阶方法时遇到了麻烦。
控制台告诉我this.updater is not a function
有什么想法吗?
答案 0 :(得分:0)
在React Component的updateUserStreet
方法中定义.getInitialState
,如此
getInitialState: function () {
this.updateUserStreet = this.updater('user.address.street');
return {...}
}
updateUserStreet
方法现在可以在React组件
答案 1 :(得分:0)
看起来updater
实际上是React组件中的保留字。它用于维护组件的生命周期和状态。
我直接在文档中找不到它,但在此处简要提到:http://reactkungfu.com/2016/03/dive-into-react-codebase-handling-state-changes/
尝试将updater
重命名为其他名称。