继承反应组件与mobx

时间:2017-12-12 14:40:23

标签: reactjs typescript mobx mobx-react

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

find /some/path -type f -name '*.csv' -exec awk -i inplace -v FS='",' -v OFS='",' '$1=$1"-test"' '{}' +

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

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

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

但是当我尝试渲染@inject("matrixStore") @observer export default class DayFinderRow extends DayRow<IDayFinderRowProps> { } 时,来自mobx的警告: DayFinderRow。并且我调试了渲染的组件Mobx observer: You are trying to use 'observer' on a component that already has 'inject'. Please apply 'observer' before applying 'inject'而不是预期的inject-DayRow-with-matrixStore#0.render()

当我从DayFinderRow#0.render()中移除装饰器时,警告消失了,但DayFinderRow组件不是DayFinderRow组件,而是DayRow

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

这可以用mobx吗?

1 个答案:

答案 0 :(得分:1)

Facebook表示继承不合适。以下是他们的解释和建议。

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

以下是面子书中的内容:

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

相关问题