reactjs - 从异步存储恢复 MOBX 存储偶尔会出错
问题描述
我试图在我的反应原生应用程序中保持我的 mobx 状态。它在大多数情况下都有效,但经常会出现错误,我必须创建空存储并丢失状态。我希望得到一些关于如何更好地实现这一目标的建议,或者是否有人知道可能导致这种情况的原因。
这是我的做法。
主要的.tsx
AppRegistry.registerComponent(APP_NAME, () => RootComponent)
根组件.tsx
export class RootComponent extends React.Component<{}, IRootComponentState> {
public async componentDidMount(): Promise<void> {
SplashScreen.hide()
this.setState({ rootStore: await setupRootStore() })
}
设置-根-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 块中出错,然后我只是用空商店恢复。我试图记录捕获错误,但它始终未定义
谢谢!
解决方案
推荐阅读
- mongodb - 如果输入数组的元素至少匹配一个,则获取数组的大小
- javascript - 当我在模板文字中使用 .map 时,为什么我的输出中有逗号?
- python - 按级别提取嵌套列表中的字符串
- python - 运行机器人文件的命令,我也可以在其中指定 python 版本
- c++ - 随机数未达到限制
- javascript - 使用 fs 模块更改 node.js 中的 html 页面文件
- html - 按钮文本颜色没有改变
- android - 数组字符串到 Int android
- autodesk-forge - Autodesk Forge 查看器在加载其他文档时出错
- javascript - 为什么这个简单的 AngularJS ng-show 不能显示子列表?