问题标签 [redux-reducers]
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.
redux - Redux 传播 InitialState 模式
最近,我偶然发现了每个 reducer 都如下所示的代码库。我猜他们正在传播initialState
以摆脱减速器初始化时的一些“剩余”嵌套状态,但这有意义吗?
reactjs - 如何修复我的减速器以返回对象的属性值?
我的 react native 应用程序中有一个减速器,理想情况下它应该检查状态并返回是否喜欢配方。如果 isFav 是 true 或 false 对于状态中的配方对象,我试图创建一个减速器来返回。如果在该状态下未找到配方,则应返回 false。
我在试图弄清楚如何编写减速器时碰了壁。这就是我到目前为止所拥有的。
这是我的 favids.js 减速器
这是我的actions.js
我正在尝试修改 is_favourite 减速器以返回 true 或 false,这是保存在状态中的配方对象的 is_fav 属性的值。
我试图在渲染组件时在可见组件的 useEffect 中调用它。
这是 favicon.js 文件
reactjs - TypeScript & React:可重用的通用动作/组件
我将 TypeScript 与 React 和 useReducer 一起使用,并且我想以类型安全的方式定义 reducer Actions。
Action 的最简单近似是:
更精确的版本需要联合类型:
到目前为止,一切都很好。然后我想定义依赖于 Action 或者更确切地说是它的导数的组件React.Dispatch<Action>
。有两种方法可以做到这一点:
- 接受(多个)泛型
- 定义更广泛的类型
方法 1) 在理论上更加类型安全,但在实践中更加冗长和复杂。方法 2) 可以在安全性和复杂性之间取得很好的平衡。
Pager
两种样式的组件道具示例:
^ 现在可以定义并将Pager2
其移动到不依赖于特定应用程序的库中。并且没有泛型。那是提供必要背景的介绍。Page
Limit
问题随之而来React.Dispatch
。这是在存在更精确版本的地方模仿通用调度重用的测试用例:
错误如下:
^但在上面的代码中,我们实际上分配"toggleColumn"
给string
. 出了点问题。
这是沙箱:https ://codesandbox.io/s/crazy-butterfly-yldoq?file=/src/App.tsx:504-544
reactjs - 无法理解react redux中的reducer功能
这是我的减速器功能:
在
到目前为止,我所了解的是减速器功能获得旧状态和新状态。旧状态由表示'posts'
,新状态由'action.payload'
...表示,现在我不明白的是什么[...posts, action.payload]
?
那三个点是什么?为什么有方括号?reducer 函数返回什么?这里发生了什么?我是java程序员,这里什么都不懂
reactjs - react-redux 中的 dispatch 函数和 reducer 函数之后会发生什么?
假设如果我使用 调度一个动作dispatch()
,我知道它reducer()
被称为 which has an action object and current state as parameters
。我想知道什么叫减速器功能?在 reducer 函数之前和 dispatch 函数之后调用了哪些函数?在reducer函数返回新状态之后,之后调用了哪些函数?这个新状态去哪儿了?在 reducer 函数返回新状态后是否还会返回一些usestate()
东西?useselector()
javascript - 使用 immer 不能修改属性 Number of nested object
我正在使用带有 Redux 的 Angular 2+ 并且很好,但不能用新值修改数量
错误是:TypeError:无法分配给对象“[object Object]”的只读属性“数量”
javascript - (React Redux)整个状态重新启动并删除我添加新项目时所做的所有更改
减速器是这样的:
动作 Creator 是
以及我触发动作的组件
是什么导致商店的状态在每次添加新商品时重新启动?
拉斐尔
reactjs - 如果在反应中使用 useState 而不是 this.state,如何将状态传递给调度操作?
我是一个初学者,在使用react-redux和useState时遇到了状态管理方面的困难。在下面的代码中,我基本上遵循了一个教程,该教程将传递this.state
到函数中的调度操作createProject
,handleSubmit
如下所示。
现在,我不使用类组件,而是使用功能组件并使用useState
钩子。在handleSubmit函数中,如何将状态传递给未定义的函数组件以及如何传递状态来代替this.props.createProject()
,它是存储状态还是其他东西,我很困惑。this.props
this.state
projectinfo
TLDR;我想从钩子this.props.createProject(this.state)
的角度重写这条线。useState
下面是我写的代码:
任何帮助或理解这一点的线索将不胜感激。谢谢!
javascript - TypeError:无法访问属性 Symbol.iterator,状态 [action.payload.savedVideos] 未定义
我对 redux 有疑问。我正在开发一个应用程序,您可以在其中保存有关您的 youtube 视频的注释。一切正常,但是当我开始添加“ADD_ITEM”操作时,每次在减速器中执行此操作时都会出现相同的错误。我遇到的错误是:TypeError: can't access property Symbol.iterator, state[action.payload.savedVideos] is undefined。我正在使用连接方法和函数 mapDispatchToProps 似乎很好,所以问题可能出在减速器或动作创建器中。这是我的减速器中的添加项目功能:`
这是我的动作创建者:
和我的初始状态:
javascript - React redux - 状态中的推送对象未映射但initialState是
我正在开发一些应用程序,您可以在其中保存有关视频的注释。我有一些 redux 问题,抱歉我不具体,但我不知道问题出在哪里。每次当我使用“ADD_ITEM”操作时,在 devtools 中一切正常,我可以看到值处于状态,但它们没有被映射,只有状态的初始值被映射。
这听起来真的很奇怪。为了向我的应用程序添加内容,我正在使用 Formik,所以问题可能出在我的表单中?这是该问题的视频:
顺便说一句,不要试图在这个视频中理解我,我是波兰人 :)
这是我实际映射的初始状态:
这是我的减速器:
动作创建者:
(addItem 在 mapDispatchToProps 中作为 addItemAction 导入) mapDispatchToProps
以及 formik 中提交所有内容的位置:
<Formik initialValues={{ title: '', link: '', content: '', created: '' }} onSubmit={(values) => { addItem(values); handleClose(); }} >