【发布时间】:2018-02-27 16:58:26
【问题描述】:
我尝试使用 HOC 模式而不是面向对象来避免冗余代码。
情况很简单,解释如下:
在主页我有这样的东西:
const WrappedComponent = Wrapper(Wrapped);
<WrappedComponent { ...this.props } />
在 Wrapper“组件”中,我想公开一个名为 foo_method 的方法,它是对 WebServer 的 Ajax 调用。结果必须以 Wrapped Component 的状态写入。
现在,WrappedComponent 可以调用 foo_method,但是当在 Wrapper 内部时,我没有 Wrapped 状态的范围,并且 this.props 包含 HomePage 的 props,而不是 wrapper,因此我无法在 Wrapper 中创建要调用的回调函数。
我在 HOC 的实现中忘记了什么吗?
【问题讨论】:
-
Wrapper 不能设置被包裹组件的状态,但它可以通过 props 传递结果。也可以通过 props 传递整个方法。
标签: reactjs