问题标签 [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.
reactjs - 根组件中的道具为空
在 React 应用程序中,我需要将我的 props 传递给我的路由组件,但由于某种原因,它们到达时是空的。所以在 VendingMachine 中,当我尝试访问我的道具时,它们里面什么都没有。空数组和对象。我设置了一个模拟数据库来获取一些数据。
index.js
应用程序.js
VendingMachine.js ,在开始检查我的 console.log 时,所有道具都是空的
至于我的 apiServer.js
我错过了什么或做错了什么?
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”。意外的键将被忽略。
注意:auth
和appVersion
是siteData
我有相应的减速器的状态。
这是我的rootReducer
:
问题
我可以有一些不会改变的状态,因此不被任何减速器处理吗?或者在这种情况下,我确实需要设置一些虚拟减速器来始终返回相同的状态?PS:它确实有效,但感觉不对。
有人有更好的选择吗?
我看过这个讨论:https ://github.com/reduxjs/redux/issues/1457
有一些建议可以填充全局对象,但我宁愿将其全部保留在内部React
和Redux
.
PS:很抱歉这个问题很长,但我想让我的用例尽可能清楚,所以有人可能会有更好的模式。
reactjs - 将用户信息存储在 Localstorage 中是否安全?
我构建了一个带有身份验证的应用程序,并在导航到私有路由时,如果存在用户对象,我将在 redux 商店中进行检查。重新加载页面时,显然商店会清除。我想到了 redux-storage 的持久状态解决方案,但我看到数据存储在 LocalStorage 中。在那里显示所有数据是否安全?用户名、姓名、电子邮件等信息。
谢谢
react-native - Blacklist Redux-persist in react native
嗨,我是反应原生和 redux 的新手。我正在使用 redux persist 在本地存储数据,但是有些键我不想持久化。为此,我正在使用黑名单,这是行不通的。它保留所有键,而不是忽略我想要的键。这是代码
我不想保留data和tabbar。
store.js
减速器/product.js
减速器/index.js
动作/product.js
应用程序.js
react-native - redux-persist 是否在应用更新之间持久化/保存数据?
在我的手机上进行调试时...如果我在 redux-persist 上保存一些内容,然后我更改一些代码并保存并运行:npx react-native run-android
...当应用程序的新版本加载时,我仍然可以看到我拥有的数据之前保存的。
这是否意味着 redux-presist 可以很好地作为数据库替代品,这样即使在 Appstore 中的 App 更新之后,保存的数据仍然会在设备中并且可以被更新的 App 访问?
reactjs - 将全局 redux 存储与组件的本地状态相结合
我遇到的挑战是使用全局存储切片,即“流派”,它是一个对象数组,在本地状态下操作复选框的选中/取消选中。当我尝试在初始状态下使用 props.genres 时会出现问题。当本地状态被初始化时,看起来我从 props.genres 得到一个空数组。
javascript - redux state 显示数据,但是 props 在 Component 的函数内部返回 null
这里的问题是redux数据最初显示为null,在代码中发布的主要组件的函数内调用调度动作后,重要的是,在调用调度动作时触发get api并将数据存储到redux store状态也更新了。问题是我们可以访问主组件内的 redux 存储数据,但不能访问主组件内的函数。如果我在主组件中记录道具数据,它会显示更新的状态数据,但如果在函数内记录相同的内容,那么最初它会显示为 null,然后它会加载(记录)数据。这让我很困扰。关于这一点,我尝试使用 store.subcribe(listener) 函数在主组件内部更新存储时获取数据。它有效,但需要太多时间。所以这不适合我的情况。所以非常感谢任何帮助。谢谢。
javascript - (从默认导出导入)Redux 中的根减速器是否自动称为“rootReducer”?
我正在阅读许多 Redux 教程,让我感到困惑的是,当使用组合 reducer 创建 Redux 存储时,通常会引用一个名称rootReducer
作为 root reducer,尽管它从未主动命名。这是否类似于被利用的默认行为?因为它似乎是这样工作的。
我怀疑,这与方式有关,减速器与组合并导出
export default combineReducers
.
这是一个例子:
./reducers/combined.js:
然后,在./store.js中:
无论如何,经过长时间的搜索,我仍然找不到任何关于这种现象的参考。
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' }
,因为我的状态是什么以及为什么没有更新?
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