Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs redux—在';肮脏';国家?_Reactjs_Redux_React Redux_Redux Logic - Fatal编程技术网

Reactjs redux—在';肮脏';国家?

Reactjs redux—在';肮脏';国家?,reactjs,redux,react-redux,redux-logic,Reactjs,Redux,React Redux,Redux Logic,我正在使用来处理react redux应用程序的业务逻辑 我有组件A和一些字段。在这个组件之外,我还有其他组件,用户可以单击它们并调用操作 在组件A中执行某些操作时,用户可以单击其他组件 “捕捉”这些呼叫的最佳方式是什么,但首先显示一些弹出窗口,上面写着“嘿,你确定吗?”如果用户单击“确定”,就会触发这些呼叫 到目前为止,我只是设法做到了以下几点: 例如,用户从组件B调用操作(而组件A中仍有未完成的业务) 听这个调用的逻辑,检查我们是否处于脏模式。如果是,我们拒绝接听电话 有两件事对我来说不

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

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

在组件A中执行某些操作时,用户可以单击其他组件

“捕捉”这些呼叫的最佳方式是什么,但首先显示一些弹出窗口,上面写着“嘿,你确定吗?”如果用户单击“确定”,就会触发这些呼叫

到目前为止,我只是设法做到了以下几点:

  • 例如,用户从组件B调用操作(而组件A中仍有未完成的业务)
  • 听这个调用的逻辑,检查我们是否处于脏模式。如果是,我们拒绝接听电话
有两件事对我来说不合适:

  • 我需要在每次通话中执行此检查
  • 它没有告诉我显示弹出窗口

  • 听起来您需要使用中间件。Redux传奇应该是答案


    签出:

    如果您使用的是
    redux-thunk
    ,那么类似的操作将非常简单:

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

    我不知道具体的
    redux逻辑,但您的通用解决方案是在异步操作中检查表单脏度。有一些很好的确认库,可以让您指定一个回调,当他们说“是”时就会发生,这将简化一些逻辑。我以前用过,而且用得很成功

    你能包括一些代码吗?展示你迄今为止所做的尝试?