javascript - 如果 useState 不更改或保持最后一个值,如何在 react 中重新渲染组件
问题描述
我有一个 useState
const [selectFolderId, useSelectFolderId] = React.useState(documentStore.id)
我从 redux 存储读取 documentStore.id,但有时当我更改 URL 并更改文档存储时,我的 selectFolderId 始终保存最后一个值,并且不会使用 DocumentStore 中的新值进行更新。我做了一个 useEffect 传递道具,如 URL 或 documentStore 来更新状态,但我没有得到结果。
useEffect(()=>{ setFolderId(documentStore.id) }, [url, documentStore])
有一种方法可以始终重置值并重新渲染组件。我猜反应总是从缓存中保存相同的数据,并且不更新 UI,也许不知道我的 documentStore.id 有其他值,那么我在 folderId 中没有我需要的数据。
如何强制我的 useStates 在每次更改时更新它们的值,而不仅仅是使用 UseEffect,因为没有更改值,useState 的最后一个值被粘贴
谢谢你的帮助
解决方案
您需要添加 documentStore.id
到您的useeffect
useEffect(()=>{ setFolderId(documentStore.id) }, [url, documentStore.id])
推荐阅读
- svelte - 如何在 Svelte 中将 {#each } 与数字一起使用
- ios - 子视图中的 @State 和 @Published 属性,SwiftUI
- xslt - 如何基于根元素中的网格元素创建 spanspec 元素?-XSLT
- javascript - 我如何选择经度和纬度以返回特定位置javascript
- r - 按行号和行名匹配 2 个数据帧,并在发生匹配时从第一个 df 中提取值
- c - 在 C 中添加两个大的双精度数会产生不正确的结果
- blockchain - 气体估计错误并显示以下消息(见下文)。事务执行可能会失败。内部 JSON-RPC 错误
- javascript - 如何用 JavaScript 保持滚动条的位置?
- python - 为什么我的角色动画超出范围
- python - Python类混淆变量