在我的React代码中,在组件内部,我正在从会话存储中获取一个值(在useEffect挂钩内部)。当控制台打印时,它将显示该值。
但是在render(或return方法)内部,它没有刚刚获取的值。从会话存储提取时是否有延迟?

在将状态存储在状态并在render中获取后解决了该问题!

let myValue = '';
useEffect(()=>{
    myValue = sessionStorage.getItem("someKey");
},[]);
// In the return method
return {
    <div>{myValue}</div>
}


为什么从会话存储中获取的值在渲染中不立即可用?

最佳答案

这里的问题是您期望变量值更改会触发重新渲染。 React无法以这种方式工作,如果您想更改值并重新呈现它,则需要另一种方法:

考虑:

const [myValue, setMyValue] = useState('');

useEffect(()=>{
   setMyValue(sessionStorage.getItem("someKey"));
},[]);

// In the return method
return {
    <div>{myValue}</div>
}

关于javascript - session 存储在获取时是否有延迟?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56734800/

10-12 06:57