给变量用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
悬赏问题
- ¥30 win from 窗口最大最小化,控件放大缩小,闪烁问题
- ¥20 易康econgnition精度验证
- ¥15 msix packaging tool打包问题
- ¥28 微信小程序开发页面布局没问题,真机调试的时候页面布局就乱了
- ¥15 python的qt5界面
- ¥15 无线电能传输系统MATLAB仿真问题
- ¥50 如何用脚本实现输入法的热键设置
- ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
- ¥30 深度学习,前后端连接
- ¥15 孟德尔随机化结果不一致