reactjs - redux - 在“脏”状态下处理组件外的动作调用的最佳方法?
问题描述
我正在使用redux-logic来处理我的 react-redux 应用程序的业务逻辑。
我有component A
一些领域。在这个组件之外,我还有其他组件,用户可以单击它们并调用操作。
在组件 A 中做一些事情时,用户可以点击其他组件。
“接听”这些电话的最佳方法是什么,但首先显示一些弹出窗口,上面写着“嘿,你确定吗?” 如果用户单击“确定” - 触发这些呼叫?
到目前为止,我只是设法做这样的事情:
- 例如,用户从组件 B 调用操作(而组件 A 中仍有未完成的业务)
- 监听这个调用的逻辑,检查我们是否处于脏模式。如果是,我们拒绝来电。
有两件事不适合我:
- 我需要在每次调用中执行此检查
- 它没有告诉我显示弹出窗口。
解决方案
如果您使用的是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
并且成功了!
推荐阅读
- java - 包含使用 AndroidX 的工具栏会使我的应用程序崩溃
- java - Java Scanner 在这种情况下如何工作?
- cuda - 如何获得 CUDA 中当前计算能力的最大共享内存量?
- spring-integration - Sftp 适配器文件大小限制
- java - Java Cassandra驱动从3迁移到4
- c - 二分搜索 2 数组错误
- mongodb - mongodb查询过滤通过测距复合字段计算
- ruby-on-rails - Ruby on rails HTTP 解析错误,格式错误的请求():#
我正在实施一个网站,我将在其中使用omniauth-facebook 和 devise gem。我已按照此链接amazon-web-services - 使用带volume的prometheus存储数据
- azure - 如何使用 ARM 模板列出租户的所有订阅名称?