问题标签 [getderivedstatefromprops]

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

reactjs - Set State into getDerivedStateFromProps (set state, React)

进入类组件我得到:

但是在控制台中我得到了以下信息:

所以我正在尝试修复它:

但是状态没有更新(没有设置)。我做错了什么?如何解决?

0 投票
1 回答
45 浏览

reactjs - 如果两个对象在getDerivedStateFromProps中具有相同的名称,如何通过迭代来比较两个对象的值?

来自 react 的道具是帐户,我将它的副本保留为 previousProps,在将其设置为需要比较每个对象的状态之前,如果两个道具对象不同,则将值分配给状态。但是,之前的 props 和 redux props 都是同一种。有什么方法可以迭代它而不是在下面一一写。

0 投票
2 回答
947 浏览

reactjs - 如何处理功能组件中的派生状态?

我经常使用类组件,其中我们有 getderivedstatefromprops 方法,但是如何处理功能组件中的那些派生状态,所以有人指导我如何处理即将到来的派生状态?

0 投票
1 回答
27 浏览

javascript - getDerivedStateFromProps 不更新状态?

我有这种情况:

现在运行这个我得到

那么我在这里错过了什么?getDerivedStateFromProps 不应该更新状态吗?

0 投票
0 回答
76 浏览

reactjs - 嵌套形式的反应和派生状态

我想我想知道我是否有一个很好的用例来在这里利用派生状态。

提炼问题,我有两个主要组成部分:

  • RootForm - 向服务器提交数据,处理响应并在整个表单中传播从服务器接收到的数据(在页面加载时和作为对表单提交的响应)以设置表单字段值。所有的表单状态都在这里维护。

  • SubForm - 向用户展示一个允许他们更改数据的表单。当用户更改数据时,将调用作为来自 RootComponent 的道具“onChange”传递给该组件的回调。这个组件,到现在为止,已经完全被 RootForm 控制了,因为 RootForm 维护着表单的状态。

我想向 SubForm 添加验证,并且仅在表单有效时才调用“onChange”回调。这意味着我需要能够:

  • 在 SubForm 中更改值,而不必让 RootForm 知道。
  • 拥有 RootForm 的状态,通过 props 传递给 SubForm,优先于 SubForm 可能持有的任何状态。这一点尤其重要,因为状态可能会在表单提交的后端发生变化。

这是派生状态的一个很好的用例吗?

0 投票
0 回答
25 浏览

reactjs - 如何根据状态数组变量的更改在 React 中重新渲染

我正在尝试构建一个类似于此的排序可视化器:https ://clementmihailescu.github.io/Sorting-Visualizer/使用 React。

为了处理合并排序算法中每个步骤的 Canvas 更新,我尝试使用状态变量 yHeights (对应于要排序的每行的高度)并在每次调用 mergesort() 期间更新此变量的状态.

但是,我遇到了一个无限循环,我相信是因为我没有保持 render() 方法“纯”——例如,我在 render 方法期间更新状态。

如何在每次调用 mergesort() 期间重构此代码以正确更新画布绘图?我想我也许可以使用 getDerivedStateFromProps 来做到这一点,但我很难理解和使用文档来实现。

代码:

0 投票
1 回答
15 浏览

javascript - 如何在 React 中使用 getDerivedStateFromProps 而不是 componentWillReceiveProps

我喜欢更新我的代码以使用 getDerivedStateFromProps 而不是 componentWillReceiveProps,因为我收到了已弃用的错误。该组件正在接收一个日期属性,并且每次更改日期时都需要使用新日期运行 getList。为此,我使用下面的代码

我尝试了以下但它不起作用