轻松操作[redux]从actionOn延迟切换状态

时间:2019-12-12 13:11:31

标签: javascript reactjs redux easy-peasy

我正在尝试弄清楚如何轻松制作一个自重置模型。基本上,我想打一次setInGridAnimation,然后在400毫秒内将其自动重置,所以我不必再为此担心。原因显然是因为有一个动画需要400毫秒,而“处于动画”状态必须切换400毫秒。这是我尝试过的:

const store = createStore({
    gridAnimation: {
        inAnimation: false,
        setInGridAnimation: action((state) => {
            state.inAnimation = true;
        }),
        stopInGridAnimation: action((state) => {
            state.inAnimation = false;
        }),
        onGridAnimation: actionOn(
            (actions, storeActions) => storeActions.gridAnimation.setInGridAnimation,
            async (state, target) => {
                const sleep = (ms) => {
                    return new Promise(resolve => setTimeout(resolve, ms));
                };

                await sleep(400);

                state.gridAnimation.stopInGridAnimation();
            },
        ),
    },
}

此操作失败,因为TypeError: Cannot perform 'get' on a proxy that has been revoked和我测试的其他类似版本同样失败。我猜是有道理的,但是如何在尚未撤消代理并且仍然有延迟的情况下访问代理呢?

从架构的角度来看,我不太确定我的方法是否正确,因为我对Redux的经验不足,因此我既需要架构方面的帮助,也要寻求有关此特定问题的帮助。

1 个答案:

答案 0 :(得分:0)

最后选择了namespace NewApp { public partial class App : Application { public App() { InitializeComponent(); // GETTING THE ERROR Material.Init(this); MainPage = new MaterialNavigationPage(new MainPage()); } } } ,这是我唯一需要从此处致电的内容。似乎工作正常。

thunk