【问题标题】:How to unsubscribe from onSnaphot() in mobx-state-tree?如何取消订阅 mobx-state-tree 中的 onSnaphot()?
【发布时间】:2019-03-21 15:22:56
【问题描述】:

我正在使用 mobx-state-tree 的 onSnapshot() 功能来监听状态变化,然后在本地存储中的每一次变化中保持状态。我就是这样做的:

import { onSnapshot } from "mobx-state-tree";

onSnapshot(store, newSnapshot => {

    saveLocalSnapshot(newSnapshot);

});

我的问题是,当我的应用需要停止保存每个快照时,如何取消订阅 onSnapshot()?

【问题讨论】:

  • 作为一种变通方法,我将saveLocalSnapshot() 调用包装在if 语句中,该语句检查我添加的新属性:store.shouldPersistSnapshots。这解决了我的问题,但必须有更优雅的方式。

标签: javascript reactjs mobx mobx-state-tree


【解决方案1】:

onSpanshotonPatch 等辅助函数(以及基本上所有其他订阅方法)返回 IDisposer,这基本上是一个您可以调用以逐字处理订阅的函数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-26
    • 2017-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多