初学React:对useState中previousState的作用与来源存疑
关于React useState中previousState的两个疑问解答
1. previousState是如何获取原有state属性的?
当你给setCar传入一个函数而非直接传对象时,React内部会自动把当前组件最新的state值作为参数传递给这个函数。也就是说,你写的previousState其实就是React帮你传入的当前car state的完整对象,自然包含了brand、model、year这些原有属性。
你用扩展运算符...previousState把原有对象的所有属性展开,再单独设置color: "blue",就只会覆盖color属性,其他属性会被保留下来,不会像直接传{color: "blue"}那样丢失原有数据。
2. previousState是不是关键字?
不是,它只是一个普通的参数名,你可以随便给它起名字,比如prevCar、oldState都没问题。只要这个参数是setCar接收的函数的第一个参数,React就会自动把当前最新的state值传给它。比如把代码改成这样,功能完全一样:
const updateColor = () => { setCar((prevCar) => { return { ...prevCar, color: "blue" }; }); };
内容的提问来源于stack exchange,提问作者nick
相关产品推荐
相关产品推荐

