2017-07-06 94 views
2

我有一個在我的componentDidMount中提取,當我做@observer @inject('appState')時不刷新appState數據,但當我有@inject('appState') @observer時,它會一直工作。Mobx @inject @observer order

與此同時,我在控制檯收到一條警告,提示我的訂單有誤。

Mobx observer: You are trying to use 'observer' on a component that already has 'inject'. Please apply 'observer' before applying 'inject'

哪一個是正確的順序,爲什麼?

+0

'@注入(「APPSTATE」)@ observer'是正確的順序。我也認爲它沒有'@ observer',也就是'@inject('appState')'。 – Tholle

+1

@Tholle'@inject('appState')@ observer'是爲我工作的。顯然,警告信息是錯誤的。沒有'@ observer'不工作=) – Abdo

+1

@Tholle我替換了所有的命令後,警告消息消失了。看起來這是Mobx中的某種打字錯誤,並且他們錯誤地翻轉了警告消息。 =) – Abdo

回答

3

裝飾器是糖的函數調用,so @a @b class C是類似於a(b(class C)),換句話說,最內層(或最右邊)是第一個應用裝飾器。因此應用inject手段之前將observerinject("stores")(observer(Component)),換句話說,爲你工作的順序是預期的順序:@inject('appState') @oberver Component