我必须在项目中一起使用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)
}
....