目前我使用的是mobx <Provider store={store} />
,其中store包含所有具有observables的mobx商店类。
在组件内部,我使用
访问它@inject("store")
@observe
class MyComponent ....
但这意味着如果我只想访问通知商店,我必须以this.props.store.notification.message
为例,这就变得非常冗长。有没有办法获得通知存储?因为我们正在注入字符串"store"
而不是对象,所以我没有看到解构它的方法。
答案 0 :(得分:4)
决定将其作为答案发布,因为它可能有助于其他人:
如mobx-react(https://github.com/mobxjs/mobx-react)文档中所示,提供商可以接受您传递给它的任何财产,而不仅仅是&#34;存储&#34;。
因此,解决方案是创建一个带有商店的对象,并使用扩展运算符(或任何其他对您感觉舒适的方式)将其传递给Provider。
env:
<var-name>: <value>
<var-name>: <value>
如果您正在使用mobx-react包并想要注入多个商店 - 只需将商店传递给以逗号分隔的@inject函数
const stores = {
storeOne,
storeTwo,
}
return (
<Provider {...stores}>
<MyComponent />
</Provider>
)
我创建了一个带有多个商店注入示例的笔:https://codepen.io/evgen/pen/NgpVMw