具有mobx-persist和AsyncStore的持久数据

问题描述 投票:0回答:1

我正在尝试使用AsyncStorage使用mobx-persist('@ react-native-community / async-storage')持久性。我的实现基本上是这样的:https://github.com/pinqy520/mobx-persist。我可以看到我的商店处于水化状态(在商店本身的构造函数中)。我也可以在组件中访问我的商店,但是在应用程序启动之间不会保留任何更改。 mobx-persist甚至适合吗?我想念什么?文档是琐碎,贫乏和过时的,以及相应的样本(对于任何反应,*似乎都是很典型的。)]

更新:只是注意到它在componentDidMount中读取失败。看起来存储稍后会在componentDidMount中被水化。知道为什么吗?

react-native mobx asyncstorage mobx-persist
1个回答
0
投票

结果是商店后来确实被水化了。我已将商店属性添加到指示的水合作用完成状态(注意,我没有坚持下去):

  @observable hydrated = false;

  constructor() {
    hydrate('myStore', this).then(() => {
      this.hydrated = true;
    });
  }

然后,在我的组件中,我开始听水化处理的声音:

    when(
      () => this.props.observableStore.hydrated,
      () => this.doSomething(),
    );

但是以上内容不足以使其起作用。我还必须添加另一个babel插件,以便react-native / decorators / Flow不会互相干扰-这实际上是我的解决方案的关键:

["@babel/plugin-proposal-class-properties", { "loose": true}]
© www.soinside.com 2019 - 2024. All rights reserved.