Я пытаюсь сохранить состояние mobx в моем собственном приложении React. Он работает большую часть времени, но часто возникают ошибки, когда мне приходится создавать пустые хранилища и терять состояние. Я хотел бы получить несколько советов о том, как лучше достичь этого, или если кто-нибудь знает, что может быть причиной этого.
Вот как я это делаю.
main.tsx AppRegistry.registerComponent(APP_NAME, () => RootComponent)
root -component.tsx
export class RootComponent extends React.Component<{}, IRootComponentState> {
public async componentDidMount(): Promise<void> {
SplashScreen.hide()
this.setState({ rootStore: await setupRootStore() })
}
setup- root -store.ts
const ROOT_STATE_STORAGE_KEY = "root"
export async function setupRootStore(): Promise<IRootStore> {
let rootStore: IRootStore
let data: any
const env = await createEnvironment()
try {
data = (await storage.load(ROOT_STATE_STORAGE_KEY)) || {}
rootStore = RootStoreModel.create(data, env)
} catch {
/// Errors out here
rootStore = RootStoreModel.create({}, env)
}
if (__DEV__) {
env.reactotron.setRootStore(rootStore, data)
}
onSnapshot(rootStore, (snapshot) => storage.save(ROOT_STATE_STORAGE_KEY, snapshot))
return rootStore
}
Бывают случаи, когда в блоке catch возникают ошибки а потом просто восстанавливаю с пустыми магазинами. Я попытался зарегистрировать ошибку перехвата, но она всегда не определена.
Спасибо!