javascript - React中的高阶方法

标签 javascript reactjs higher-order-functions

我有一个 React.js 组件,我想定义一个像这样的更高阶方法 -

updater: function (path) {
  return function (value) {
    this.setState(this.modules.setter.set(this.state, path, value)) 
  }
}

其中 this.modules.setter.set 返回状态的更新版本,其中新的位于指定的路径上。

这是希望能够定义这样的方法 -

updateUserStreet: this.updater('user.address.street')

我在创建所需的 this.modules.setter.set 方面没有问题,但是一般来说,我在使用高阶方法时遇到了麻烦。 控制台告诉我 this.updater 不是一个函数

有什么想法吗?

最佳答案

在React组件的.getInitialState方法中定义updateUserStreet,如下所示

getInitialState: function () {
  this.updateUserStreet = this.updater('user.address.street');
  return {...}
}

updateUserStreet 方法现在可以在 React 组件上定义的任何其他方法中使用

关于javascript - React中的高阶方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33900207/

相关文章:

python - 设计过滤函数的谓词

javascript - Meteor,如何将回调和错误传递给调用者方法

javascript - 从 tinyMCE 获取选定文本的开始和结束

javascript - 在js中将字符串中的每个字母加倍

javascript - 动态添加的元素不受 masonry.js 的约束

reactjs - React-hook-form:如何显示嵌套名称的错误?

javascript - 单击导航栏,每次都会附加子路线

javascript - React setState 不更新缩减数组

python - 当不需要某些特定的通配符组合时,如何在蛇形中使用扩展?

javascript - 错误: function is not defined when calling a function returned by another function