问题标签 [use-reducer]

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 回答
440 浏览

reactjs - 在 React Reducer 中抛出错误是否安全?

正如这里所讨论的,React reducer 似乎必须是纯函数并且永远不会产生副作用(没有 API 调用改变任何东西)。如果输入无效,在减速器中抛出错误是否安全)?(这不被认为是副作用吗?)

0 投票
1 回答
295 浏览

reactjs - 只是想找出使用​​ useReducer + context hooks 的最佳实践

只是想找出使用​​ useReducer + 上下文挂钩的最佳实践。

哪个是更好的做法?

  1. 在提供者中有一个 useReducer。(1个巨型初始状态+多个组合减速器)
  2. 提供者中有多个 useReducer,每个都管理自己的状态
0 投票
1 回答
908 浏览

javascript - 如何在单个提供者中为多个状态对象实现 React useReducer

我们在一个提供者中拥有三个相关但独立的巨大状态对象,并且不确定哪种方式更好地实现 useReducer。

我们正在迁移以使用 useReducer 并且很难将它们全部粘在一个初始状态中。

选项 1:一个单一的 'mainReducer' 来管理一切

选项 2:拥有三个单独的 useReducer

哪种方法更好?每个的优点/缺点是什么,或者两者之间几乎没有/没有区别?

0 投票
3 回答
12164 浏览

javascript - 在反应中丢失页面刷新时的组件数据

我正在做一些我需要维护应用程序级别状态的事情,即全局状态,我正在为此使用反应钩子useContextuseReducer.

所以我正在做的是点击按钮,我正在设置我的上下文,然后通过在我的App.js.

我知道我为什么要使用我的数据,因为我首先将初始状态设置为 null,这就是为什么当我刷新页面时它再次设置为 null,但我的要求不是在单击按钮后我想将该数据存储为全局状态,以便我可以进一步使用它

但这不应该是我想让我的数据全球化并且在刷新时它不应该丢失的情况

我的代码

我的上下文文件

我设置上下文的家庭代码

还有我的 app.js 文件

请检查工作代码我的代码和框链接

请检查反应开发者工具

单击我的开发人员工具图像

当我刷新页面开发者工具时

0 投票
1 回答
64 浏览

reactjs - React Native 上下文内容不断回来

我想使用useContextuseReducer和清除用户并在 React Native 中注销useMemo

我的应用程序(AuthContext)中有用户屏幕(UserContext)。

UserContextclearUsers()useMemo

AuthContextlogout()内有useMemo

如果我这样做,UserContext 的内容将被清除:

但是当我在 clearUsers 之后或之前添加注销时,userContext 内容在重新登录后不断返回。

有人经历过吗?请指教。

0 投票
1 回答
595 浏览

javascript - TypeError:无法读取未定义的属性“映射”-React 应用程序-useContext 和 useReducer 问题

我正在使用 react 使用 contextHook 和 reducerHook 制作应用程序项目,但得到:

TypeError:无法读取未定义的属性“地图”

几天前同样的代码还在工作,但现在它给出了那个错误。我已经浪费了很多时间试图在互联网上寻找答案,但我无法获得任何帮助......以下是错误图片和我的代码:

Github repo 上的完整代码

错误图片 1

错误图片 2

错误图片 3

0 投票
1 回答
852 浏览

javascript - React context dispatch 状态改变后如何处理

我有一个反应版本 16 应用程序。使用 React 的 Context、reducer 概念处理状态更改。

要更改状态并执行更改后的操作,可以按如下方式处理。例如 - 我在组件“联系人”中。在这里面,我在一个变量 age 上发送一个状态变化,它是一个如下给出的数字 -

并在减速器中捕获调度,如下所示

要在年龄发生变化后在 'Contact' 组件中执行某些操作,我们可以使用 'useEffect' 来观察 'age' 的变化

问题是——如果我们必须改变一个处于状态的对象,即我们必须改变下面给出的地址,而不是改变年龄,我们必须在地址改变后做一些事情。

我们如何观察地址的变化?

一种可能的解决方案 - 除了地址分派,我们还可以分派一个变量,我们可以根据它的变化做一些事情。但这不是一个完美的解决方案。

0 投票
2 回答
3980 浏览

javascript - 如何通过 useReducer 和 useContext 在 Custom Hooks 中调度操作?

我为按钮切换创建了一个示例。

这是通过useContext(存储数据)和useReducer(处理数据)完成的。它工作正常。

这是CodeSandBox 链接到它是如何工作的。

version 1只是在单击按钮时调度。

然后我创建了一个version 2切换。基本上只是将调度放在自定义钩子中。但不知何故,它不起作用。

不知道那里发生了什么。但我认为派遣状态有问题。

(我试过如果有效载荷没有处理状态,比如一些硬代码的东西,它就可以工作,所以此时应该触发调度)

有人可以帮帮我吗?欣赏!!!

0 投票
1 回答
411 浏览

javascript - 如何在 React Reducer 中将深度嵌套的对象添加到深度嵌套的数组中?

我有以下反应状态:

我正在使用 React useContext 和 useReducer 钩子。我想要做的是向arrayTwo 添加一个对象。

到目前为止我已经尝试过:

我调用类型为“ADD_NEW_OBJECT”的调度函数,有效负载是一个包含一些键值对的对象。

这是我的 useReducer 案例语句:

0 投票
3 回答
1652 浏览

reactjs - 如何为以下 contextapi 代码的 useReducer useContext 设置 Typescript 类型?

而不是任何,我想在下面的代码中使用正确的 TS 类型。我是反应 TS 的新手,请帮助...

如何为以下上下文 API 代码的 useReducer useContext 设置 typescript 类型:

任何人都可以帮助我吗?将不胜感激?

谢谢你