问题标签 [react-state-management]

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 投票
1 回答
802 浏览

javascript - 在 React Native 中提升状态时卡住

我正在为学习目的创建一个示例反应应用程序,因为我遵循了单独组件的层次结构:

现在,当我按下按钮时,我想通过在单选按钮中传递所选选项来导航到其他屏幕。

我读过这篇关于提升状态的文章。但问题是,这里没有我可以将状态提升到的共同父祖先。

如果我将状态列出到<HomeScreen>组件,我该如何管理<RadioButton>组件中的选择?

这是<RadioButton>组件的完整代码:

在这里您可以看到最终做出的选择将存储在该组件的状态中(在 中radioSelected)。

我在这里缺少什么?我的设计<RadioButton>错了吗?

0 投票
1 回答
1420 浏览

javascript - 如何动态获取状态数组名称 React

如何在 state 中动态设置数组的名称,以从 state 中获取它。

我知道如何动态设置和获取状态键,但是当我尝试做

[path]: this.state.[path].concat([value])

我收到以下错误:

错误图像

任何帮助将不胜感激,谢谢

0 投票
1 回答
1995 浏览

javascript - 选中/取消选中复选框时管理状态 - 反应

在我的反应应用程序中,用户输入关键字并获得结果列表。我正在尝试对这些结果实施过滤器。下面是过滤器的截图。 在此处输入图像描述

这是我的状态

我要做的是,每当检查复选框或未选中复选框时,我都将相应的复选框设置为True/False。基于每个复选框的这个布尔值,我过滤掉results然后在 UI 上呈现它。单击复选框时,我可以过滤结果,但未选中复选框时,我无法显示所有结果。这就是我在复选框更改时的处理方式。

我知道我没有正确处理状态,在这种情况下我该怎么办。为了更好地参考,这里是完整的搜索结果代码。

0 投票
1 回答
485 浏览

javascript - 检测组件外部的点击反应方式不是 dom 访问

我正在使用 React 实现裁剪功能。当用户右键单击时,会出现一个上下文菜单。在上下文菜单中,用户可以选择裁剪项目。当用户选择裁剪时,裁剪被激活。现在,我想在用户在该分区之外单击时关闭裁剪状态。我如何在没有 DOM 操作的情况下做出反应?还是我必须使用 DOM 操作,例如add EventListener & removeListener?在这里使用 DOM 访问有什么缺点?请让我彻底了解这一点,因为这将在我将开发的许多功能中实现。例如,我正在谈论的上下文菜单或下拉菜单。

这是参考示例 - Sandbox。现在,当用户点击ReactCrop组件外部时,我想通过反应方式关闭裁剪。

我不想继续document.addEventListener or removeListener

0 投票
3 回答
1996 浏览

reactjs - 为多级状态对象反应 setState

我正在尝试更新包含多个级别的状态对象。请参阅此示例https://codesandbox.io/s/oq9kp9vy5y

问题是,渲染方法中的值不会更新......只有第一个。我可以强制更新还是有更好的方法?

谢谢卡斯帕

0 投票
1 回答
151 浏览

javascript - 如何通过更灵活地渲染其他转储组件来使 React 中的智能组件更加智能

在渲染转储组件时,我目前对容器方法有一个问题。

假设我有一个ProductContainer,如下所示:

我可以使用 redux 来管理商店,但在这种情况下,我只想让它尽可能简单。

然后我还有两个转储组件作为ListProductComponentAddProductComponent

到目前为止,很聪明,所以转储,但问题出在智能渲染方面,我怎样才能让智能组件只渲染ListProductComponent,或者单独渲染AddProductComponent

目前我有两个组件都显示在容器的渲染功能上,我实际上希望保持容器对 Product 实体执行 CRUD 操作,然后将相同的组件用于列出产品,在所有其他转储中添加新产品成分。

使用当前的实现我无法做到这一点,我不得不同时列出和添加新产品到同一个视图。

有些人建议让 ListProductContainer 和 addProductContainer 分别处理 crud 操作,但是这样分离是不是太多了?我实际上想将杂物保留在一个智能组件中。

如何为非常智能的组件提供更灵活的渲染来实现这一点。

更新:可能我想在容器上渲染部分这样的东西,但我不确定这样的东西是否可行。

然后在容器上的render() 中调用这个renderComponent,但是如何将状态/存储或其他属性传递给转储组件?

考虑到我可以做同样的事情:

能够传递状态并调用父/容器方法。

0 投票
3 回答
1857 浏览

javascript - 在 React 中切换嵌套状态对象

我有一个包含对象数组的状态对象:

我想status在单击事件时将布尔值从 true 切换为 false。我将此函数构建为单击处理程序,但它不会将事件连接到状态更改:

我很难跟踪嵌套 React 状态更改的控制流,以及活动事件如何从处理程序跳转到状态对象,反之亦然。

整个组件:

0 投票
2 回答
241 浏览

javascript - React setState()不适用于无线电字段handleInput方法

我正在研究 React 应用程序中的无线电提交方法。

这是有问题的无线电领域:

这是我的状态:

这将是具有多个单选字段的较大表单的一部分,所有单选字段都具有相同的name属性,因此一次只能选择一个。

我试图在用户选择单选字段后立即更新状态,例如,如果用户单击上面显示的单选字段,那么我希望day2CorrectAnswer状态的属性立即更新为day2AnswerA.

为什么这不起作用?

0 投票
2 回答
599 浏览

javascript - 在 React JS 中使用多个组件从父级传递和更新 prop / state 值

我有两个组件,一个组件中有多个选项的选择列表,另一个组件中有一个按钮。

我希望在 UI 中您可以从选择列表中选择任何选项,还可以单击按钮将选择列表重置为“选择”。

这两个组件都在渲染的父组件内 - 我试图将父组件保持为“单一事实来源”,以便选择列表可以在选择时更新其值,然后重置按钮也可以更新它相同的值。

我已经写了我认为这应该如何工作,但是选择列表卡在第一个项目上,并且重置按钮没有更新列表,无法发现我哪里出错了,如果有人可以给我一些建议/为我指明正确的方向,我将不胜感激 - 谢谢

0 投票
1 回答
193 浏览

reactjs - 在 React JS 中将 props / state 传回父组件

我有两个组件,一个包含多个选项的选择列表和一个按钮组件

我想在 UI 中做的是用户可以从他们想要的选择列表中选择任何选项,然后按下按钮将列表重置为“选择”

我将父组件作为唯一的事实来源 - 所有更新的状态都传递回父组件,实际上我已经在一个文件的上下文中使用以下代码很好地工作了;

但是我真正喜欢做的是将重置按钮移动到它自己的文件中,这就是我试图将道具/状态传递回父级的地方。

所以渲染方法实际上看起来像这样

我导入 TestComponent 然后在 TestComponent 内部是我将为 SelectListReset 组件提供代码的地方,但我遇到的问题是现在这些值作为道具发送给它应该是不可变的,所以不能更新?

这就是我的理解停止的地方..如果有人能指出我正确的方向,我将非常感激!