Mobx状态树嵌套存储注入

时间:2018-08-23 12:46:52

标签: reactjs mobx-state-tree

使用mobx-state-tree有一个问题。 如果我们嵌套了具有以下结构的商店

login(store):{
    //some primitives
},
mainPage(store):{
    slider:(store):{
        //some primitives
    },
    userList:(store):{
        //some primitives
    },
    //some primitives
},

我们如何仅注入userList家商店。 我试图这样做:

@inject('mainPage.userList')

但是会引发错误

1 个答案:

答案 0 :(得分:1)

没有直接引用就不能直接注入子存储。您可以简单地注入mainPage,然后在构造函数中对其进行访问。

@inject('mainPage')

然后

constructor(props) {
    super(props)
    this.userList = this.props.mainPage.userList
}

一种改进是拥有一个rootStore,并仅通过提供者将其注入每个组件。这样简化了测试,每个组件都可以访问整个树。

看看入门文档,您会看到使用rootStore的各种示例:

https://github.com/mobxjs/mobx-state-tree/blob/master/docs/getting-started.md