反应中的高阶方法

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 重命名为其他名称。