如何在任何页面上对mobx使用next.js getInitialProps方法?

时间:2019-06-29 18:07:25

标签: reactjs next.js mobx

我必须在项目中一起使用mobx和next.js。我已经在github'with mobx'示例中查看了官方文档。因此,我了解到主要思想是服务器和客户端存储必须相同。每次与服务器连接时,我都应该创建一个新商店。但是我无法理解getInıtialProps方法中的代码。为什么我们在getInıtialProps方法中使用getInıtialProps2次?并且在构造函数中也使用相同的代码。您能解释一下其背后的想法吗?我找不到解释性的例子。另外,我应该在每个页面上使用getInıtialProps还是可以使用注入和观察器代替?

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)
}

....

0 个答案:

没有答案