Я должен использовать 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)
}
....