我正在尝试通过mobx-persist使用AsyncStorage ('@react-native-community/async-storage')持久化。我的实现基本上是这样的:https://github.com/pinqy520/mobx-persist。我可以看到我的存储是水合的(在store本身的构造函数中)。我也可以在我的组件中访问我的商店,但不会在应用程序启动之间保留任何更改。mobx-persist是否适合这样做?我错过了什么?文档是琐碎的、糟糕的和过时的,以及相应的示例(对于任何react-*来说似乎都是非常典型的)。
更新:刚刚注意到在componentDidMount中读取失败。看起来商店是水化的,然后在componentDidMount。知道为什么吗?
发布于 2019-12-15 17:16:00
后来发现商店确实补充了水分。我已经将store属性添加到指示的水合完成(注意,我没有持久化它):
@observable hydrated = false;
constructor() {
hydrate('myStore', this).then(() => {
this.hydrated = true;
});
}然后在我的组件中,我开始监听水合结束:
when(
() => this.props.observableStore.hydrated,
() => this.doSomething(),
);然而,以上内容还不足以使其正常工作。我还必须添加另一个babel插件,以便react-native/装饰器/流不会相互干扰-这实际上是我的解决方案的关键:
["@babel/plugin-proposal-class-properties", { "loose": true}]https://stackoverflow.com/questions/59307080
复制相似问题