Основная цель, на которую я хочу обратить внимание, - отдать предпочтение общению между магазинами, а не третьему, а не прямому, так как это позволит вам лучше изолировать магазины друг от друга. Я не знаю специфику вашего приложения, но это процесс разработки, вы видите, что что-то должно работать по-другому - ваш рефакторинг. Да, это накладные расходы - но если ваши болячки зависят друг от друга - ожидайте больших неприятностей, когда вам придется рефакторинг один или удалить. Когда это может быть недопустимо для приложения с 2 магазинами, но если у вас есть 20 - это будет иметь значение.

редложено здесь, в Mobxдокументация Я создал несколько магазинов следующим образом:

class bankAccountStore {
  constructor(rootStore){
    this.rootStore = rootStore;
  }
...

class authStore {
  constructor(rootStore){
    this.rootStore = rootStore;
  }
...

И наконецсоздание корневого хранилища следующим образом. Такжея предпочитаю построить детские магазины в конструкторе мастерского магазина. Более того, я обнаружил, что иногда моему дочернему хранилищу приходится наблюдать некоторые данные из родительского хранилища, поэтому я передаю их в дочерние конструкторы.

class RootStore {
  constructor() {
    this.bankAccountStore = new bankAccountStore(this);
    this.authStore = new authStore(this);
  }
}

Предоставление в приложение следующим образом:

<Provider rootStore={new RootStore()}>
  <App />
</Provider>

А такжевпрыскивание к компоненту в такой:

@inject('rootStore') 
@observer
class User extends React.Component{
  constructor(props) {
    super(props);
    //Accessing the individual store with the help of root store
    this.authStore = this.props.rootStore.authStore;
  }
}

Это правильный и эффективный способ внедрить корневое хранилище каждый раз в компонент, даже если ему нужна часть корневого хранилища? Если нет, как внедрить Auth Store в пользовательский компонент?

Ответы на вопрос(1)

Ваш ответ на вопрос