首页 > 解决方案 > redux - 在“脏”状态下处理组件外的动作调用的最佳方法?

问题描述

我正在使用redux-logic来处理我的 react-redux 应用程序的业务逻辑。

我有component A一些领域。在这个组件之外,我还有其他组件,用户可以单击它们并调用操作。

在组件 A 中做一些事情时,用户可以点击其他组件。

“接听”这些电话的最佳方法是什么,但首先显示一些弹出窗口,上面写着“嘿,你确定吗?” 如果用户单击“确定” - 触发这些呼叫?

到目前为止,我只是设法做这样的事情:

有两件事不适合我:

  1. 我需要在每次调用中执行此检查
  2. 它没有告诉我显示弹出窗口。

标签: reactjsreduxreact-reduxredux-logic

解决方案


如果您使用的是redux-thunk,那么这样的事情就像这样简单:

function goingAwayAction(){
  return (dispatch, getState) => {
    const state = getState();
    if (Selectors.formIsDirty(state)) {
      confirm("Are you sure?", () => { dispatch(GoAway()) })
    } else {
      dispatch(GoAway())
    }
  }
}

我特别不知道redux-logic,但您的一般解决方案是检查表单脏度作为异步操作的一部分。有很好的确认库可以让你指定一个回调,当他们说是时发生,这将为你简化一些逻辑。我以前用过react-confirm-alert并且成功了!


推荐阅读