有没有办法在 React 中为装饰器创建组合函数?

克莱门特·维迪亚

我正在开发一个完整的 Web 应用程序,其中包含一些使用多个装饰器 (HOC) 的组件。

我想知道是否有一种方法可以通过一次调用使用多个装饰器。

像这样的东西:

export default compose(
  [
    withFunctionality,
    withProvider
  ]
)(MyComponent)

对应的代码应该是:

export default withProvider(
  withFunctionality(
    MyComponent
  )
)

以下代码是我尝试过的:

function compose(hocs) {
  return (Component) => hocs.reduce(
    (component, hoc) => hoc(component),
    Component
  )
}

但是,当这样做时,我的某些组件不再起作用。

知道出了什么问题吗?

仍可获取更多信息。

亚历山大

这是compose伟大的recompose函数的经典定义

const compose = (...funcs) =>
  funcs.reduce((a, b) => (...args) => a(b(...args)), arg => arg)

export default compose

如果你使用redux它也有compose功能。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

有没有办法在React中作为单独的组件动态加载纯HTML?

有没有办法在React.render()函数中渲染多个React组件?

有没有办法在React Native(适用于Android)中添加视频元素?

有没有办法从减速器动作中获得回报?(在React-Native中)

有没有办法检测React中的API调用?

在React Native导航v2中使用mergeOptions函数之前,有没有办法读取选项?

有没有办法使用React Hooks API模拟构造函数代码的运行频率?

有没有办法动态创建React组件

有没有办法在Nginx中运行React应用(需要Docker,需要Nginx知识)

有没有办法在新标签页中打开React组件的相同实例?

有没有办法通过父HTMLDivElement访问React组件返回的函数?

有没有办法在React中设置边框不透明度?

有没有办法让用户仅在React中查看模糊的内容?

有没有办法在React Native应用程序中实现某种自动翻译?

有没有办法在React Native中以编程方式更改SegmentedControlIOS选定的选项?

有没有办法将现有的 css 解析为 React Native css?

有没有办法在 React Native 中预取或缓存音频?

有没有办法在react-native中使用参数调用函数?

有没有办法在 React 中更改输入的类型?

react native:有没有办法将函数传递给“onpress”?

有没有办法检测 LastPass 扩展是否在网站上运行(在 React 中)

有没有办法在'react-router-dom'的Link元素中装饰文本?

有没有办法在打字稿中键入 React 路由器 NavLink 的 isActive 函数

有没有办法从 React Native 的 JSON 文件中获取所需的信息

有没有办法抑制 React.FC 中的水化警告?

有没有办法遍历 React 中的计时器?

有没有办法从 React 中的 createElement() 函数获取输入数据

有没有办法在 React 中传递/迭代数组作为样式属性?

有没有办法让 HTML 按钮像 React 中的单选按钮一样工作?