问题标签 [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.

0 投票
2 回答
116 浏览

reactjs - 为什么我的减速器存储结果很慢?

编辑:我已经稍微调整了我的代码,现在我很确定无论发生什么,我的减速器都会在“动作”处返回未定义。所以我认为这是问题所在,或者是 combinereducer。此外,我返回了固定变量,但我仍然未定义

我没有看到错误隐藏在哪里,但我怀疑我的减速器太慢了。

我的目标是什么,我的目标是从一个 api 中获取所有成员。为此,我使用 combinereducer 和 thunk。

此外,我使用 await 功能,请求被正确发出和接收。不幸的是,结果出现得太晚了,反应不再考​​虑,这让我感到奇怪。所以我怀疑我的减速器可能设置错误。

这是我的代码:

这是我处理请求的操作(myAPP/src/action/action.js):

我处理存储结果的减速器(myApp/src/reducer/member.js)+我的组合减速器:

并且至少我的应用程序发生错误(myApp/src/app.js):

1-3 的所有标记都是空的。

但是如果我去'myApp/src/action/action.js'。我看到它是成功的。但正如我一开始所说,我认为储蓄是错误的。

无论如何,它没有被渲染,也没有显示....所以结果见 *4 没有显示。

任何想法?

0 投票
1 回答
42 浏览

reactjs - 如何使用接口传递数组对象或将它们存储在reducer中,过滤器如何处理它?

使用减速器将对象数组存储在状态时遇到问题。我在下面有这个代码:

这是我的界面:

这是它加载的地方,reducers 只是存储状态。

然后一旦我尝试用搜索做一个无序列表

过滤器无法识别 fontData 并出现错误,即这是未定义 =>"TypeError: Cannot read property 'filter' of undefined"

这是减速机 -

0 投票
1 回答
95 浏览

javascript - 在 redux 中使用 {...state} 而不是 persistReducer 中的状态

所以我在我的 react-native 应用程序中使用 redux-persist 来保持状态并且一切正常。

对于 reducer,我switch-case用来检查不同的动作类型,而对于默认值,我正在返回状态。

这件事工作正常,但如果我在默认块中替换state{...state},它不会保持状态。

现在我明白了多少state = {...state},为什么这不起作用。

这是persistConfig;

0 投票
1 回答
19 浏览

react-native - 更新点 Redux React Native

我正在尝试从 Firebase 加载点以便在我使用 Redux 的屏幕上显示它,因为可以更新点数但我不能放入this.props.Points.updatePointFirebase 请求

我该如何更新它?

Home.js

PointReducer.js

0 投票
1 回答
129 浏览

reactjs - 在 react redux 中设置状态时,我可以获得当前对象的索引吗?

我正在使用 react redux 开发一个待办事项应用程序,它的初始状态是一个对象initialState,并且有一个数组 task,它是一个空数组。在设置 的值时task,我似乎无法找到一种方法来获取对象的当前索引以将其分配给id。我尝试过使用indexOf()and thefindIndex()但还没有找到最好的方法来处理它。我希望 id 等于其对象的索引。(如果对象在任务数组中的索引 0 处,则该 id 等于 0)并且在数组更改或具有多个对象时也可以工作。感谢您的帮助,谢谢

这是我的初始状态

这是我的减速机

0 投票
1 回答
54 浏览

javascript - redux 修改后组件不会重新渲染

我在我的应用程序中使用 redux,起初它可以按我的意愿工作。当我通过 reducer 在状态中添加一些东西时,我的组件会根据需要重新渲染。但是当我只修改状态内的属性值时,我的组件不会重新渲染。

如果您需要代码,我可以上传它(或某些部分),但我认为问题更多的是思维方式。

我的州的例子

当我添加类似的新内容时,它会起作用并重新渲染:

但是当我只想像这样将属性vuefalse更改为true时,它​​可以工作(当我检查应用程序中的状态时,应用了修改但我的组件没有重新渲染:

(我也尝试从我的状态中删除元素并在之后添加它,但和以前一样,它在不渲染我的组件的情况下工作)所以我不知道如何说状态被修改

0 投票
0 回答
28 浏览

react-native - React native - how to combine reducers to store socket.io & redux-thunk

I’m trying to combine two different projects. The first is chat app and the second is store app. I have a issue to create the store for the reducers of the projects. How can I add the two reducers to the same store? Thanks

0 投票
1 回答
337 浏览

javascript - React 和 redux 工具包:如何​​添加从拖放事件中获取数据的 reducer

对 React 和 redux 来说非常新。我正在尝试向我的 React 应用程序添加文件拖放功能,但正在努力使用 redux 工具包的 createSlice 函数来解决这个问题。

我不断收到'TypeError:无法读取未定义的属性'fileList'。我认为这是因为我在下面的 searchSlice.js 中弄乱了 addFilesToList 减速器。

任何帮助将不胜感激。请在下面查看我的代码:

searchSlice.js

拖放.js

0 投票
2 回答
1114 浏览

reactjs - TypeError:无法解构“panelMembersList”的属性“错误”,因为它未定义

我正在尝试使用和从Django REST API服务器加载数据,我在其他屏幕(如产品、博客帖子)中使用的类似方法,它们工作正常,现在我需要从中加载另一个模型,但我不确定为什么会出现这个错误...... reduxaxiosapiTypeError: Cannot destructure property 'error' of 'panelMembersList' as it is undefined.

有问题的代码 panelMembersList.js

当我加载此屏幕时,我收到以下错误

指示错误未定义,你能帮忙解决这个问题吗?

store.js

行动

减速器

api端点 http://localhost:8000/api/panel/

0 投票
0 回答
23 浏览

reactjs - 我是通过使用连接来更新状态还是从我的数据库中获取更新的状态并将我的状态设置为那个?什么是正确的?

我不确定更新减速器内部状态的最佳做法是什么。

假设我的 reducer 是一个博客列表。我创建了一个动作 getBlogs,它在组件挂载时获取这些博客,我创建了一个动作 addBlog,它将向博客状态添加一个新博客。

  1. 我是否像这样使用连接来更新博客状态: blogs: [...state.blogs, newBlog]

或者

  1. 再次调度 getBlogs 以获取现在更新的状态并将博客设置为该状态。如果添加博客成功,这将从 addBlog 中调用。

抱歉,如果这听起来含糊不清。我似乎无法正确地提出我的问题,所以我没有找到一个很好的资源来说明什么是正确的,什么不是。