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 ответ
Вы не можете добавить подстарку напрямую, не имея прямой ссылки на нее. Вы можете просто вставить 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