React Native里用useState更新对象状态为什么没生效?

技术志鲜 阅读 29

我在React Native组件里用useState存了一个对象,想只改其中一个字段,但界面没重新渲染。我试过直接修改属性比如user.name = 'new'然后setUser(user),好像不行?

是不是得用展开运算符重新赋值?比如下面这样写才对?

setUser({ ...user, name: 'new' });
我来解答 赞 12 收藏
二维码
手机扫码查看
1 条解答
技术晨曦
直接用这个
setUser({ ...user, name: 'new' });

React状态更新要求新旧状态不能是同一个对象引用,直接改属性不创建新对象,所以没反应。用展开运算符创建新对象才行。
点赞
2026-03-21 07:02