反应中的高阶方法
higher order method in react
我有一个 React.js 组件,我想像这样定义一个高阶方法 -
updater: function (path) {
return function (value) {
this.setState(this.modules.setter.set(this.state, path, value))
}
}
其中 this.modules.setter.set
returns 状态的更新版本,新的 value
位于指定的 path
。
希望能够像这样定义一个方法 -
updateUserStreet: this.updater('user.address.street')
我在创建所需的 this.modules.setter.set
方面没有问题,但是我在使用高阶方法时通常会遇到问题。
控制台告诉我 this.updater is not a function
有什么想法吗?
像这样在 React 组件的 .getInitialState
方法中定义 updateUserStreet
getInitialState: function () {
this.updateUserStreet = this.updater('user.address.street');
return {...}
}
updateUserStreet
方法现在可以在 React 组件上定义的任何其他方法中使用
貌似updater
其实是React组件中的保留字。用于维护组件的生命周期和状态。
我无法直接在文档中找到它,但在这里找到了它的简要提及:http://reactkungfu.com/2016/03/dive-into-react-codebase-handling-state-changes/
尝试将 updater
重命名为其他名称。
我有一个 React.js 组件,我想像这样定义一个高阶方法 -
updater: function (path) {
return function (value) {
this.setState(this.modules.setter.set(this.state, path, value))
}
}
其中 this.modules.setter.set
returns 状态的更新版本,新的 value
位于指定的 path
。
希望能够像这样定义一个方法 -
updateUserStreet: this.updater('user.address.street')
我在创建所需的 this.modules.setter.set
方面没有问题,但是我在使用高阶方法时通常会遇到问题。
控制台告诉我 this.updater is not a function
有什么想法吗?
像这样在 React 组件的 .getInitialState
方法中定义 updateUserStreet
getInitialState: function () {
this.updateUserStreet = this.updater('user.address.street');
return {...}
}
updateUserStreet
方法现在可以在 React 组件上定义的任何其他方法中使用
貌似updater
其实是React组件中的保留字。用于维护组件的生命周期和状态。
我无法直接在文档中找到它,但在这里找到了它的简要提及:http://reactkungfu.com/2016/03/dive-into-react-codebase-handling-state-changes/
尝试将 updater
重命名为其他名称。