reactjs - 使用 mobx 继承 React 组件

标签 reactjs typescript mobx mobx-react

我有一个组件继承自抽象类并使用这样的 mobx 装饰器:

@inject("matrixStore")
@observer
export default class DayRow<T extends IAbstractRowProps = IAbstractRowProps> extends AbstractRow<T> {
     // ...
}

渲染函数本身存在于 AbstractRow 组件中。

我从 DayRow 继承了另一个组件:

@inject("matrixStore")
@observer
export default class DayFinderRow extends DayRow<IDayFinderRowProps> {
}

但是当我尝试渲染 DayFinderRow 时,mobx 发出警告: Mobx 观察者:您正在尝试在已经具有“注入(inject)”的组件上使用“观察者”。请在应用“注入(inject)”之前应用“观察者”。然后我调试渲染的组件,它说 inject-DayRow-with-matrixStore#0.render() 而不是预期的 DayFinderRow#0.render()

当我从 DayFinderRow 中删除装饰器时,警告消失了,但呈现的不是 DayFinderRow 组件,而是 DayRow

我需要两个组件上的装饰器,因为我渲染了两个组件,但我想从 DayRow 派生 DayFinderRow,因为我只需要更改一个函数的行为。

这可以用 mobx 实现吗?

最佳答案

Facebook说继承不合适。这是他们的解释和建议。

我没有充分的理由使用 React Component 作为蓝图。 函数组合对我来说更有意义。

这是面子书对此的说法:

https://reactjs.org/docs/composition-vs-inheritance.html

关于reactjs - 使用 mobx 继承 React 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47775254/

相关文章:

javascript - 在react中使用forEach无法显示img

javascript - 为什么 typescript 不提示某些 undefined variable

javascript - 如何跟踪 MobX 存储中的嵌套对象

react native 与 mobx 抛出错误

reactjs - 将带参数的回调传递给父组件

javascript - 访问 react 中动态创建的元素集

javascript - 带有凭据的 Angular 6 httpClient Post

angular - 如何在 Angular 6 中手动设置对 mat-form-field 的关注

javascript - 无法将 mst 模型数据从一个模型复制到另一个模型

javascript - 导入react(小写)与导入React(大写)