Как использовать метод next.js getInitialProps с mobx на любой странице? - PullRequest
0 голосов
/ 29 июня 2019

Я должен использовать mobx и next.js вместе в проекте. Я посмотрел официальные документы на примере github 'с mobx'. Итак, я понял, что основная идея заключается в том, что хранилища сервера и клиента должны быть одинаковыми. И каждый раз при подключении к серверу я должен создавать новый магазин. Но я не мог понять, что коды в методе getInıtialProps. Почему мы используем getInıtialProps 2 раза в методе getInıtialProps? А также те же коды используются в конструкторе. Не могли бы вы объяснить идею этого? Я не мог найти объяснительный пример. Кроме того, я должен использовать getInıtialProps на каждой странице, или я могу вместо этого использовать Inject и Observer?

class MyMobxApp extends App {
  static async getInitialProps(appContext) {
  // Get or Create the store with `undefined` as initialState
  // This allows you to set a custom default initialState
    const mobxStore = initializeStore()
  // Provide the store to getInitialProps of pages
  appContext.ctx.mobxStore = mobxStore

  let appProps = await App.getInitialProps(appContext)

  return {
    ...appProps,
    initialMobxState: mobxStore,
  }
}

constructor(props) {
  super(props)
  const isServer = typeof window === 'undefined'
  this.mobxStore = isServer
    ? props.initialMobxState
    : initializeStore(props.initialMobxState)
}

....
...