2

是他们在 Reflux 中重置商店的一种方式。

我想在 Jasmine 中运行每个测试之前重置 Reflux 中的商店。

4

2 回答 2

1

您必须自己做,因为 Reflux 没有规定您必须如何在商店中存储数据,因此没有官方接口来存储数据。

例如我这样做:

function defaultState() {
    return {
        userId: -1,
        displayName: null,
        loggedIn: false
    };
}

var state = defaultState();

var userStore = Reflux.createStore({
    // all your store methods

    reset: function () {
        state = defaultState();
        // do other cleanup, or trigger a change event
    }
});

因此,在您的茉莉花测试中,您现在只需调用:myStore.reset()

如果你想知道为什么我把statedefaultState()放在 store 外面:我这样做是因为这样做的好处是没有人可以从外面弄乱你的 stores 状态,只有 store 可以改变状态,但这当然只是一个小问题实现细节,你可以自由地将所有东西都变成商店本身的一部分。

于 2015-08-14T19:35:25.920 回答
0

这个示例 React/Reflux 项目配置可能也很有趣:
https ://github.com/kentor/react-flux-testing/blob/master/tests.webpack.js

于 2015-09-28T16:38:38.973 回答