问题标签 [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.
javascript - 错误:在 React useContext 和 useReducer 中未定义
我正在尝试使用useContext
and制作一个 redux 模式useReducer
。我创建了一个创建上下文 (a reducer
) 的组件,并且我也有初始值。我用上述声明我的归约,并返回由我的 Reducer 的值提供的子组件。然后在下一个图像中,我有一个视图,它将渲染一个组件,该组件生成一个表单,并且包装在ExpenseReducer
组件中,以便它具有我的 reduce 的值。
在表单中,我导入上下文并尝试使用调度,但我收到类似“未定义”的错误
我的代码
reactjs - 如何仅更新 1 个字段而不覆盖 React Hooks 上的嵌套对象上的其他字段使用 Reducer?
我开始学习 React + hooks。我现在正在使用 useReducer。但是我在更新我的 useReducer 状态时遇到了问题。每次我想更新对象状态的 1 个字段时,所有其他字段都会被删除。
我的解决方案是将所有现有值传递给它们,即使我只需要更新 1 个字段。有没有更有效的方法来做到这一点?
这是我的解决方案:
reactjs - 如何使用 Nextjs 将我的 URL 与应用程序状态同步
我的应用程序有过滤器。我想做浅层路由,并在用户更改过滤器同时更新我的应用程序状态时将查询添加到 URL。但这似乎我在维持两种状态。有没有这方面的最佳实践?因为我希望我的 url 匹配应用程序状态
reactjs - 使用 React 的 Hooks useReducer,状态不是“单一数据源”吗?App 或 Sibling 如何获取其他组件的状态?
我尝试了useReducer 的示例代码:
并在 App 中实例化了 3 个计数器。示例:https ://codesandbox.io/s/serene-morse-c017r
所以看起来状态对于每个 Counter 组件都是本地的,而不是像 Redux 上的“单一事实来源”?如果 App 想要获取所有 counter 的值,或者一个 Counter 想要获取另一个 Counter 的值,那该怎么做呢?
reactjs - useReducer 后如何清除输入
我正在使用 useReducer 来控制我的 2 个输入:
在单击按钮后,我希望清除两个输入。useReducer 之后我该怎么做?
javascript - 使用 useEffect 更新 useReducer 的“状态”
在我的应用程序中,我使用的是 React Hooks/Context API。现在,每当我的 Provider 组件挂载时,我需要将从 localStorage 获取的数据分配给 initialState.carts / state.carts。如果 useEffect 支持返回对象,这是可能的。但是不能在 useEffect 中返回对象!
现在我该如何解决这个问题?
代码如下,
reactjs - 如何在自定义钩子函数中访问 useReducer 的新状态
我有一个使用useReducer
.
使用自定义钩子:
问题:state
内部是 prev 状态customDispatch
。我怎样才能解决这个问题?
提前致谢。
reactjs - 如何更改我的句柄更改并提交给减速器?
我一直在尝试将我的身份验证表单提交给减速器 3 天,我搜索并阅读了我能找到的所有内容,我找到了句柄更改的部分答案,但无法弄清楚如何执行句柄提交功能,我看到了如何其他人已经做到了,但没有一个与我的相似,请指导我如何找到我的解决方案,这是我在减速器之前的代码:
这是手柄更换减速器:
这是我的减速器手柄更改方法:
我不是在寻找解决方案,但我厌倦了 3 天没有找到方法,我需要继续前进,请指导我
javascript - 使用 useReducer 从一个子组件调度操作并在另一个子组件中更新状态
这是一个包含以下示例代码的 CodeSandbox,linter 突出显示了一些问题:https ://codesandbox.io/s/react-repl-bw2h1
下面是我正在尝试做的一个基本示例。在容器组件中,我有一个AppContext
为子组件提供状态的上下文,<ChildConsumer />
并且<ChildDispatcher />
.
<ChildConsumer />
组件使用 接收此状态,useContext
这似乎按预期工作。
在里面<ChildDispatcher />
,我试图在单击按钮时调度一个动作。为此,我创建了一个reducer
处理动作的减速器。我还在这里设置了 useReducer 来接收reducer
初始store
状态。
当我单击按钮时,什么也没有发生。我期望发生的是,dispatch
既接收state
拉出useReducer
的对象,也接收action
对象,并将它们传递给减速器。reducer 应该看到BUTTON_CLICKED
收到了 type 的 action,并且应该返回一个包含旧状态的新状态以及一个附加'goodbye'
项。然后,子组件<ChildConsumer />
应该使用这个新状态重新渲染。
reactjs - 如何将 useReducer 与 Formik 一起使用?
我有一个名为 Context.js 的文件,其中有一个 reducer。所有这些都使用 Context API 传递给其他组件
在许多其他组件中,我正在尝试使用 Formik 处理表单,并希望将表单信息保存到状态中,这样如果通过其他组件访问表单,则可以在那里找到已经提供的信息。
如果我尝试记录“名称”,它可以正常工作,但是当我离开该字段时,它会给我错误消息,就好像没有输入任何内容一样。
我似乎无法弄清楚如何将 Formik 与 useReducer 一起使用或如何将其信息传递给其他组件