问题标签 [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.
react-native - getDerivedStateFromProps 何时清除数据?
getDerivedStateFromProps 对于组件是静态的。但是今天我调试应用程序,当我们定义它时,我在 getDerivedStateFromProps 方法中找到了其他组件数据 nextProp.x。
另一种情况是在重新创建组件时,nextProp.x 仍然是预数据。
那么当 react-native 会移除 getDerivedStateFromProps 数据时,为什么数据是混杂的呢?
reactjs - getDerivedStateFromProps 有什么用(或者你如何解雇它?)
我有以下“列表”组件,我正在尝试从道具更新 this.state。我似乎无法让 getDrivedStateFromProps 与 componentDidUpdate 一起正常工作。逻辑存在问题,但 gDSFC 似乎不会触发,因为无论它是否被注释掉,我都会得到相同的响应。
javascript - 如何用 getDerivedStateFromProps 替换 componentWillReceiveProps
我如此努力地阅读和尝试,但仍然找不到成功将 componentWillReceiveProps 替换为 getDerivedStateFromProps 的方法。这是我的代码,componentWillReceiveProps 一个工作正常。但是我尝试的 getDerivedStateFromProps 不起作用(在 componentDidMount() 运行正常后,state.movies 最终变为 [] 为空)。感谢您的帮助!
以下是我尝试使用 getDerivedStateFromProps 的方法,但无法正常工作(在 componentDidMount() 运行正常后, state.movies 最终变为 [] 为空)。....TT
太感谢了!
reactjs - 是否存在强制 getDerivedStateFromProps 的情况?
如 React 文档中所述,应谨慎使用此 API,因为可以使用更简单的替代方案来实现相同的结果。这是我理解并完全同意的。
但是,作为一个独立的 API,在某些情况下它应该是强制性的。令我困惑的是,即使是文档中提到的这个 API 的“罕见用例”也不能令人信服它是完全需要的。
以第二个用例为例:https ://reactjs.org/blog/2018/03/27/update-on-async-rendering.html#fetching-external-data-when-props-change
此生命周期方法仅用于在渲染新道具之前清除陈旧数据。但是我们不能只清除componentDidUpdate中的陈旧数据吗?即使它会在道具比较相等的情况下触发不必要的重新渲染,但它是值得接受的解决方案。
我稍微修改了一下以显示这两种解决方案产生相同的最终结果:https ://codesandbox.io/embed/sharp-paper-p5hv2?fontsize=14&hidenavigation=1&theme=dark
您认为在哪里适合使用此 API?
reactjs - 我无法停止使用 componentWIllReceiveProps / getDerivedStateFromProps
我是 React 的新手(实际上是编程世界),我只是发现我们根本不需要使用 componentWIllReceiveProps / getDerivedStateFromProps,但我有这个问题:
我有一个父组件 LoginForm,我在其中获取我的 API 并使用它的响应来重定向(如果成功),或者在登录失败时显示 Modal(LoginFailure 组件)。因此,我需要将我的父 LoginForm 传递给模态子 loginFailure 道具,该道具在 API 响应之后发生变化,当我的 LoginFailureComponent 已经呈现时,就好像它永远不知道父亲道具发生了变化。代码如下,抱歉太长了:
这是我的子组件,现在使用 willReceiveProps:
我阅读了所有关于我们应该如何替换这些的 React 文档,但我无法将它应用到我的案例中,如果你能指导我解决这个问题,我将非常感激!
感谢社区!
reactjs - React 并发模式是否允许派生状态?
今天,如果需要,我们可以在 React Hooks/函数组件的渲染阶段getDerivedStateFromProps
使用类组件和状态更新来创建派生状态。
我对 React Hook 变体特别好奇:这在 React 并发模式下是否允许?
如果我使用StrictModeScrollView
包装常见问题解答中的组件,则不会有任何警告。但是,我还是有一点胃疼的感觉,这种模式在并发模式下可能会出现问题。 <React.StrictMode>...</React.StrictMode>
所以问题是:
关于 Hooks FAQ 链接,在 React 并发模式下是否仍然可以派生状态?
例子:
reactjs - 如何仅在第一次渲染childComponent时跳过childComponent中getDerivedStatefromProps()中的状态更新
嗨,我是 Reactjs 的新手。每次加载此组件时,我希望以下 childComponent 的 {this.state.data} 递增 5。所以我在静态方法 getDerivedStateFromProps(props,state) 下这样做但是第一次加载时 {this.state.data} 应该是我定义的初始值(这里是 0)。所以我希望下面的行输出从 0 开始递增 5(我定义的初始值)
来自 ClassChild 的数据:{data}
预期输出: ClassChild 中的数据:0 ClassChild 中的数据:5 ClassChild 中的数据:10 ClassChild 中的数据:15
实际输出: ClassChild 中的数据:5 ClassChild 中的数据:10 ClassChild 中的数据:15 ClassChild 中的数据:20
无论如何要跳过getDerivedStateFromProps(props,state)的第一次执行,而不是在构造函数中定义-5值以获得预期的输出?
reactjs - 每次本地状态更改时都会调用 getDerivedStateFromProps
ownUpdate: true
目前,当我们从同一个组件更改状态并相应地在 getDerivedStateFromProps 中检查它时,我正在设置状态。下面是我在组件中使用的代码。任何人都可以提出更好的方法来做到这一点。提前致谢。
javascript - 如何在不调用 getDerivedStateFromProps 的情况下使用 stateState 更新数据?
我正在构建一种电子商务应用程序。众所周知,每个电子商务应用程序都有愿望清单功能。在我的产品列表中,卡片项目上有一个点赞按钮。当用户单击它时,它会调用 API 将isLiked
属性设置为true
(布尔值)并更新数据库。
当用户单击该卡片项目时,它应该将他导航到它的详细信息页面,该页面也有类似按钮。我在...中调用详细 API 是componentDidMount
这样的:
如果from detail APIred
的属性是 ,我应该用颜色渲染 like 按钮。因此,为此,我在构造函数中使用 props 值设置我的状态:isLiked
true
我添加isLikedForCompare
比较是因为我们无法this
在 getDerivedStateFromProps 中访问。
我有那个selectedItem
总是满足条件的代码块,因为初始值总是空的。这段代码适用于其他功能,所以我需要让他们不管,这就是为什么我的代码是这样的。所以,继续……现在我可以isLiked
从道具中获得价值。在我看来,点赞按钮现在是红色的。但问题是当我单击该按钮时。我的期望是当我单击该按钮时,按钮变为白色,因为我只是使用更改我的状态,this.setState
但为什么在 setState 之后调用 getDerivedStateFromProps?
这是一个问题,因为:
isLiked: prevState.isLikedForCompare !== isLiked ? isLiked : prevState.isLikedForCompare
将永远是错误的。所以我的状态isLike
永远都是真的!
如何解决这个问题?
react-native - getDerivedStateFromProps() 与 componentDidUpdate()
我componentWillReceiveProps
在我的应用程序中的很多地方都在使用它。现在,我必须用getDerivedStateFromProps()
or替换它们componentDidUpdate()
。首先,我想使用getDerivedStateFromProps
as it s 替代componentWillReceiveProps
asSuggested react-native
docs。但是有些人强烈建议不要使用这种方法,而是建议使用componentDidUpdate
. 但是对于我的要求,所有新道具都必须使用state
之前的渲染进行设置。getDerivedStateFromProps
是最好的地方。
因此,在getDerivedStateFromProps
和之间使用哪一个componentDidUpdate
?