Bij*_*pil 1 javascript storage session-storage reactjs react-hooks
在我的反应代码中,在组件内部,我从会话存储中获取一个值(在 useEffect 挂钩内)。当控制台打印时,它会显示该值。但在渲染(或返回方法)内部,它没有刚刚获取的值。从会话存储中获取数据时是否存在延迟?
在状态中存储相同内容并在渲染内部获取后,解决了这个问题!
let myValue = '';
useEffect(()=>{
myValue = sessionStorage.getItem("someKey");
},[]);
// In the return method
return {
<div>{myValue}</div>
}
Run Code Online (Sandbox Code Playgroud)
为什么从会话存储中获取的值不能立即在渲染中可用?
这里的问题是您期望变量值更改来触发重新渲染。React 不会以这种方式工作,如果你想更改值并重新渲染,你将需要另一种方法:
考虑:
const [myValue, setMyValue] = useState('');
useEffect(()=>{
setMyValue(sessionStorage.getItem("someKey"));
},[]);
// In the return method
return {
<div>{myValue}</div>
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2826 次 |
| 最近记录: |