我的componentDidMount
中有一个提取,当我执行appState
时不会刷新@observer @inject('appState')
数据,但是当我@inject('appState') @observer
时,它会一直有效。
与此同时,我在控制台收到一条警告,说明我的订单有误。
Mobx observer: You are trying to use 'observer' on a component that already has 'inject'. Please apply 'observer' before applying 'inject'
哪个订单正确?为什么?
答案 0 :(得分:6)
装饰器是函数调用的糖,so @a @b class C
类似于a(b(class C))
,换句话说,最内部(或最右边)是第一个应用的装饰器。因此,在应用observer
之前应用inject
意味着:inject("stores")(observer(Component))
,换句话说,适合您的顺序是预期的顺序:@inject('appState') @oberver Component