问题标签 [redux]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
12927 浏览

javascript - React textarea with value 是只读的,但需要更新

我的 React 应用程序中有一个文本区域,其中填充了一个值。我希望更新此文本区域并提交表单以更新数据库中的行。

描述变量用数据库中的值填充文本区域。该字段未禁用。

我试图附加一个 onChange 事件,该事件调度一个动作(redux)来更改 textarea 的值,但它会为每个字母触发,而且速度太慢。

如何创建一个由值填充且可编辑的文本区域?

谢谢!

0 投票
2 回答
26850 浏览

reactjs - 为什么在 Redux 中直接使用“this.props.dispatch”而不是“store.dispatch”?

直接使用 store.dispatch 有什么害处吗?

在我看来,调用起来要容易得多(因为它对所有子组件都可用),到目前为止,在我的测试中,我还没有找到不同之处。

谢谢!

0 投票
2 回答
3755 浏览

javascript - 如何将 redux 状态传递给子路由?

我很难理解如何将 redux 与 react-router 一起使用。

index.js

应用程序.js

显示.js

这抛出

未捕获的类型错误:无法读取未定义的属性“地图”

我发现的唯一解决方案是使用它而不是 {children}:

这真的是正确的方法吗?

0 投票
1 回答
2601 浏览

javascript - 如何撤消 Redux 异步操作?(多步返回状态)

如果我有一个带有 api 调用的异步操作,这可能是一个操作返回一个函数:

或者返回一个对象并使用中间件拦截它并做一些事情:

现在我的问题是:如何在调度 asyncAction 之前回滚到状态,这实质上意味着在状态(成功/失败 => 请求)中退回两步,使用 api 调用撤消上一次 api 调用。
例如,删除一个待办事项(这是一个异步操作)后,会显示一个带有撤消选项的弹出式快餐栏,单击它后,已删除的待办事项将被添加回 UI 以及 api 调用以将其添加回数据库。

我试过redux-undo但我觉得它不是为了解决这样的问题。
或者我应该忘记“撤消”并在用户单击撤消选项时发送一个全新的addTodo操作?

提前致谢 :-)

0 投票
4 回答
44059 浏览

javascript - React + Redux - 在表单组件中处理 CRUD 的最佳方法是什么?

我有一张用于创建、读取、更新和删除的表格。我创建了 3 个具有相同形式的组件,但我向它们传递了不同的道具。我得到了 CreateForm.js、ViewForm.js(只读,带有删除按钮)和 UpdateForm.js。

我曾经使用 PHP,所以我总是以一种形式完成这些工作。

我使用 React 和 Redux 来管理商店。

当我在 CreateForm 组件中时,我将这个道具传递给我的子组件,createForm={true}以不使用值填充输入并且不禁用它们。在我的 ViewForm 组件中,我传递了这个 props readonly="readonly"

我遇到了另一个问题,即填充了一个值且不可更新的 textarea。React textarea with value 是只读的,但需要更新

只有一个组件处理表单的这些不同状态的最佳结构是什么?

你有什么建议、教程、视频、演示要分享吗?

0 投票
0 回答
901 浏览

redux - 观察中间件的存储状态变化

我正在编写一个 Redux 中间件,它负责在用户点击redux-api-middlewareAPI_CALL之前将用户的 OAuth AccessToken 添加到阳离子。

但是,我也希望这个中间件检测用户的 AccesToken 何时过期......

发生这种情况时,中间件会保留该操作(防止将其传递给next链中的中间件)并将其存储在内部列表中。然后它开始异步。通过分派“刷新访问令牌”FSA 进行令牌刷新过程:

最后,我想监听“刷新访问令牌”流程何时完成并刷新(重新调度)所有被扣留的操作。AUTHENTICATION_RESPONSE目前,我通过在FSA 流经我的中间件时寻找它们来做到这一点(该操作作为thunkAUTHENTICATION_RESPONSE的副作用进行调度。refreshAccessToken

但是我对这种方法并不满意,因为不确定AUTHENTICATION_RESPONSEFSA 是否真的会命中减速器(它可能被其他中间件拦截,或者被进一步推迟)。

我考虑过的可能替代方法是让refreshAccessTokenactionCreator 返回一个返回 Promise 的 thunk;这样我的中间件可以在刷新和重放所有请求之前等待该承诺解决,即:

或者,我可以让我的中间件直接观察商店并在auth.accessToken值发生变化时触发动作 - 但是,我不清楚中间件观察商店的指导是什么(我猜这是不可能的,因为中间件需要是在创建最终存储对象之前实例化。)

谢谢 :)

更新

在回家的路上思考问题;如果我要将实际的身份验证逻辑移出refreshAccessToken(一个 thunk'd 动作创建者),并移到中间件本身,那么我会省去很多痛苦:

0 投票
2 回答
1624 浏览

reactjs - 大量数据是否应该在 redux 中进入应用程序状态?

假设我有一些数据表,例如返回用户列表(带有详细信息)或日志记录列表的管理员报告列表。此信息是否属于 redux 存储,只有数据表需要此信息?或者,如果我正在绘制具有 5000 个节点的东西怎么办。这也属于 redux 单一应用程序状态吗?为什么或者为什么不?

如果这些项目不属于应用程序状态,那么我应该在没有 redux 的情况下将它们加载到本地组件状态吗?不过,类似地获取我所有的异步请求似乎很好。

0 投票
3 回答
14592 浏览

reactjs - 如何从三层下的子组件调度动作?

我目前在设计 React 应用程序时面临这个问题,但我似乎无法找到答案。

所以我的应用程序在 React Router 中具有以下组件层次结构

App -> DynamicContainer -> -> LoginComponent

现在,LoginComponents 有表单元素来获取用户名和密码。

我有处理登录的 userActionCreators ,它在完成后发送登录成功,但我似乎无法找到连接我的 LoginComponent 以发送操作或调用 actionCreators 的正确方法。

我该怎么做?任何建议将不胜感激。

0 投票
0 回答
56 浏览

javascript - 仅在行更改时消失的多行占位符

你好!

我试图找出一种在 textarea 内做多行占位符的简单方法(或替代解决方案,更多关于底部的内容),只有当行发生变化时才会消失。所以,基本上,如果这是 textarea 的初始状态(或任何可能的状态)

用户点击第一个问题并输入A如下所示:

到目前为止,我已经考虑了三种不同的解决方案,但不确定更喜欢哪一种。

1) 具有与文本区域分开呈现的幽灵内容。

2)不要使用文本区域,而是每行输入一个文本区域。问题将是实现 textarea 行为,但有许多输入。不过,每行都有占位符是微不足道的。

3)拥有实际文本并在需要时使用某种解析器来添加/删除文本。

感谢我能得到的任何帮助/指示。

我正在使用 React 和 Redux,但我很高兴得到答案,其中包括我可以从中获得灵感的其他技术。

0 投票
7 回答
40165 浏览

javascript - React + Redux - 当输入具有来自状态的值时,输入 onChange 非常慢

我的输入被我所在州的一个值填充。

Settings是我对 Redux 的状态。当我在输入中输入一个值时,我必须指定一个onChange函数。这是我的 onChange 函数:

它更改flashVarsValue输入值的状态值。但是当我输入我的输入时,它会滞后。我不明白为什么每次更改输入值时都应该调用调度。

有什么办法可以减少延迟?

我的减速机:

我的行动:

谢谢