问题标签 [redux-store]

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 投票
0 回答
92 浏览

reactjs - 根组件中的道具为空

在 React 应用程序中,我需要将我的 props 传递给我的路由组件,但由于某种原因,它们到达时是空的。所以在 VendingMachine 中,当我尝试访问我的道具时,它们里面什么都没有。空数组和对象。我设置了一个模拟数据库来获取一些数据。

index.js

应用程序.js

VendingMachine.js ,在开始检查我的 console.log 时,所有道具都是空的

至于我的 apiServer.js

我错过了什么或做错了什么?

0 投票
0 回答
281 浏览

javascript - 如何保持在 Redux 存储中不会改变的状态?

我正在构建一个将执行 SSR(服务器端渲染)的单一应用程序,并且我正在使用React + Redux

我刚刚开始在这个应用程序中实现Redux 。它以前是仅使用 React 等构建的应用useState程序useContext

事实是,有时我需要我的应用程序代码了解它正在运行的环境,ON_CLIENT或者ON_SERVER,例如,跳过某些window.something语句。

Redux之前,我在做以下事情:

index.js(这可能是我的客户端包或服务器包的 index.js)

应用程序.js

然后,在某个组件内部,我可以执行以下模式:

SomeComponent.js

我想用Redux改进这种模式。

我想把它保存在 Redux 商店中,这样我就可以摆脱EnvironmentContext它并通过以下方式访问它:

所以我想过这样做:

index.js

但是由于我没有对应于这个状态(environment)的reducer,我得到了这个错误消息:

redux.js:319在传递给 createStore 的 preloadedState 参数中发现了意外的键“环境”。预计会找到已知的 reducer 键之一:“auth”、“appVersion”、“siteData”。意外的键将被忽略。

注意:authappVersionsiteData我有相应的减速器的状态。

这是我的rootReducer

问题

我可以有一些不会改变的状态,因此不被任何减速器处理吗?或者在这种情况下,我确实需要设置一些虚拟减速器来始终返回相同的状态?PS:它确实有效,但感觉不对。

有人有更好的选择吗?

我看过这个讨论:https ://github.com/reduxjs/redux/issues/1457

有一些建议可以填充全局对象,但我宁愿将其全部保留在内部ReactRedux.

PS:很抱歉这个问题很长,但我想让我的用例尽可能清楚,所以有人可能会有更好的模式。

0 投票
1 回答
423 浏览

reactjs - 将用户信息存储在 Localstorage 中是否安全?

我构建了一个带有身份验证的应用程序,并在导航到私有路由时,如果存在用户对象,我将在 redux 商店中进行检查。重新加载页面时,显然商店会清除。我想到了 redux-storage 的持久状态解决方案,但我看到数据存储在 LocalStorage 中。在那里显示所有数据是否安全?用户名、姓名、电子邮件等信息。

谢谢

0 投票
4 回答
1396 浏览

react-native - Blacklist Redux-persist in react native


嗨,我是反应原生和 redux 的新手。我正在使用 redux persist 在本地存储数据,但是有些键我不想持久化。为此,我正在使用黑名单,这是行不通的。它保留所有键,而不是忽略我想要的键。这是代码

我不想保留datatabbar


store.js

减速器/product.js

减速器/index.js

动作/product.js

应用程序.js

0 投票
1 回答
354 浏览

react-native - redux-persist 是否在应用更新之间持久化/保存数据?

在我的手机上进行调试时...如果我在 redux-persist 上保存一些内容,然后我更改一些代码并保存并运行:npx react-native run-android...当应用程序的新版本加载时,我仍然可以看到我拥有的数据之前保存的。

这是否意味着 redux-presist 可以很好地作为数据库替代品,这样即使在 Appstore 中的 App 更新之后,保存的数据仍然会在设备中并且可以被更新的 App 访问?

0 投票
2 回答
290 浏览

reactjs - 将全局 redux 存储与组件的本地状态相结合

我遇到的挑战是使用全局存储切片,即“流派”,它是一个对象数组,在本地状态下操作复选框的选中/取消选中。当我尝试在初始状态下使用 props.genres 时会出现问题。当本地状态被初始化时,看起来我从 props.genres 得到一个空数组。

0 投票
1 回答
579 浏览

javascript - redux state 显示数据,但是 props 在 Component 的函数内部返回 null

这里的问题是redux数据最初显示为null,在代码中发布的主要组件的函数内调用调度动作后,重要的是,在调用调度动作时触发get api并将数据存储到redux store状态也更新了。问题是我们可以访问主组件内的 redux 存储数据,但不能访问主组件内的函数。如果我在主组件中记录道具数据,它会显示更新的状态数据,但如果在函数内记录相同的内容,那么最初它会显示为 null,然后它会加载(记录)数据。这让我很困扰。关于这一点,我尝试使用 store.subcribe(listener) 函数在主组件内部更新存储时获取数据。它有效,但需要太多时间。所以这不适合我的情况。所以非常感谢任何帮助。谢谢。

0 投票
2 回答
909 浏览

javascript - (从默认导出导入)Redux 中的根减速器是否自动称为“rootReducer”?

我正在阅读许多 Redux 教程,让我感到困惑的是,当使用组合 reducer 创建 Redux 存储时,通常会引用一个名称rootReducer作为 root reducer,尽管它从未主动命名。这是否类似于被利用的默认行为?因为它似乎是这样工作的。

我怀疑,这与方式有关,减速器与组合并导出

export default combineReducers.

这是一个例子:

./reducers/combined.js

然后,在./store.js中:

无论如何,经过长时间的搜索,我仍然找不到任何关于这种现象的参考。

0 投票
1 回答
56 浏览

reactjs - Redux:我的状态正在接收 '@@redux/INITi.8.gwam' Redux 状态未更新

我一直在调试为什么我的状态没有改变,并注意到这被记录在我的减速器中:

这是包含状态、动作类型、reducer、动作的商店:

这是我的组件:

这里是 console.log('userAvatar in imageUploader ', userAvatar); console.log('Date.now() 第 44 行 in imageUploader ', Date.now()); console.log('localUserAvatar in imageUploader ', localUserAvatar); console.log('Date.now() 第 46 行 in imageUploader ', Date.now());

在此处输入图像描述

从日志中您可以看到loadAvatar调度程序,在组件和存储中被触发......

但是商店里的状态永远不会改变......

其他状态也确实会正确更改...例如,我有一个 Modal 并且可以很好地更新。

任何帮助将不胜感激{ type: '@@redux/INITi.8.g.w.a.m' },因为我的状态是什么以及为什么没有更新?

0 投票
1 回答
819 浏览

reactjs - 在运行 Saga 之前,您必须使用 applyMiddleware 和 redux 工具在 Store 上挂载 Saga 中间件

有人可以帮忙吗,
Error: Before running a Saga, you must mount the Saga middleware on the Store using applyMiddleware

挂载 sagaMiddleware 仍然在页面上抛出错误使用 saga Middleware Store Js
将 redux-saga 添加到 Store

创建此 saga 以在安装组件后获取集合
Sagas.js