给变量用setZhi这个方法操作后控制台没变,但是视图倒刷新了,这是什么原理?
react的hooks中useState中的setState赋值不生效是为什么?
给变量用setZhi这个方法操作后控制台没变,但是视图倒刷新了,这是什么原理?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 崽崽的谷雨 2022-06-23 11:27关注
视图 刷新了说明 生效了 ,至于 赋值后直接打印 没立即变,是因为 setState是异步的,不能直接看到结果 。
因为 setZhi 需要改变 视图, 是副作用 操作 想要看到 用
useEffect(() => { console.log(zhi); }, [name])
或者 useRef 实现
function Counter() { const [count, setCount] = useState(0); const prevCountRef = useRef(); useEffect(() => { prevCountRef.current = count; }); const prevCount = prevCountRef.current; return <h1>Now: {count}, before: {prevCount}</h1>; }
https://zh-hans.reactjs.org/docs/hooks-faq.html#how-to-get-the-previous-props-or-state
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用 1
悬赏问题
- ¥15 HFSS设计小型化180度耦合器
- ¥15 使用CInternetSession,CHttpFile读取网页文件时有些电脑上会卡住怎么办?
- ¥15 水下机器人的半物理仿真研究
- ¥15 微服务假死,一段时间后自动恢复,如何排查处理
- ¥50 webrtc-streamer TCP rtsp
- ¥15 cplex运行后参数报错是为什么
- ¥15 之前不小心删了pycharm的文件,后面重新安装之后软件打不开了
- ¥15 vue3获取动态宽度,刷新后动态宽度值为0
- ¥15 升腾威讯云桌面V2.0.0摄像头问题
- ¥15 关于Python的会计设计