Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果useState未更改或保留最后一个值,如何在react中重新呈现组件_Javascript_Reactjs_React Hooks - Fatal编程技术网

Javascript 如果useState未更改或保留最后一个值,如何在react中重新呈现组件

Javascript 如果useState未更改或保留最后一个值,如何在react中重新呈现组件,javascript,reactjs,react-hooks,Javascript,Reactjs,React Hooks,我有一个有用的状态 const[selectFolderId,useSelectFolderId]=React.useState(documentStore.id) 我正在从redux store读取documentStore.id,但有时在我更改URL和文档存储时,我的selectFolderId始终保留最后一个值,并且不会使用documentStore中的新值进行更新。 我做了一个useEffect,通过URL或documentStore等道具来更新状态,但我没有从中得到结果 useffe

我有一个有用的状态
const[selectFolderId,useSelectFolderId]=React.useState(documentStore.id)

  • 我正在从redux store读取documentStore.id,但有时在我更改URL和文档存储时,我的selectFolderId始终保留最后一个值,并且不会使用documentStore中的新值进行更新。 我做了一个useEffect,通过URL或documentStore等道具来更新状态,但我没有从中得到结果

    useffect(()=>{setFolderId(documentStore.id)}[url,documentStore])

  • 有一种方法可以始终重置值并重新渲染组件。 我猜react总是从缓存中保存相同的数据,并且不更新UI,可能不知道我的documentStore.id有其他值,那么我在folderId中没有我需要的数据

    我如何强制我的useState在每次更改中更新其值,而不仅仅是使用UseEffect,因为在不更改值的情况下,会粘贴useState的最后一个值


    感谢您的帮助

    您需要将
    documentStore.id
    添加到
    useffect

     useEffect(()=>{ setFolderId(documentStore.id) }, [url, documentStore.id])
    

    我不知道它不工作,我需要找到一种方法来重置URL时的状态changes@JavierBurgos因此,在URL重定向后到达的组件中,可以尝试调度操作以更新redux状态中的状态变量值