我无法理解Provider
包中@inject
和mobx-react/native
的角色。
使用mobx Provider
的大多数示例都使用它来提供全局存储。像这样:
import { Provider as MobXProvider, observer } from 'mobx-react/native';
import myStore from './stores/myStore.js'
@observer
export default class App extends Component{
render() {
return(
<MobXProvider store={myStore)>
<NavigationStackOrSomethingElse />
</MobXBrovider>)
}
}
Provider
到底是什么意思?
据我了解,我需要将@inject
商店添加到后续视图的props
中。有没有办法在单个控制器中提供和使用商店?像这样:
import { Provider as MobXProvider, observer } from 'mobx-react/native';
import myStore from './stores/myStore.js'
@inject('store') // <-- doesn't work
@observer
export default class SomeSmallView extends Component{
render() {
return(
<MobXProvider store={myStore)>
<MyViewThings />
</MobXBrovider>)
}
myAction() {
this.props.state.doSomeStateThings();
}
}
如果使用多个商店,供应商如何使用?它们都在Root屏幕中提供了吗?它们是由想要使用它的组件的父屏幕提供的吗?
答案 0 :(得分:1)
所以事实证明,你总是在开头提供你想要在你的应用中使用的所有商店:
<Provider chatStore={chatStore} wallStore={wallStore}>
...
</Provider>
然后只需使用@inject
将它们注入使用它们的组件中。