You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React中setState里[name]为何用方括号?value为何不用?

React表单useState状态更新的两个常见疑问解答

1. 为何要将变量name用方括号包裹?

这是JavaScript的计算属性名语法,核心作用是把变量name的实际值作为对象的属性名。

比如你的输入框name属性是"username",用[name]的话,最终生成的对象键名就是"username";如果不用方括号,写name: value,那键名就是字符串"name",不管输入框实际的name是什么,都会把状态里的name属性覆盖掉,根本没法实现一个handleChange处理多个输入框的需求。

简单说:方括号是告诉JS“别把这里的name当字符串,把它当成变量,用它的值当属性名”。

2. 同样随输入动态变化的value,为何不需要用方括号包裹?

因为value是作为属性的值来赋值的,对象字面量里冒号右侧本来就支持直接写变量——写变量名就会自动取它的当前值。

比如value是用户输入的"张三",那[name]: value就等价于"username": "张三",完全符合正常的赋值逻辑。只有当你需要动态确定属性名的时候才需要用方括号,属性值本身是变量的话直接用变量名就够了。

内容的提问来源于stack exchange,提问作者Ahmet Yasin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 01:34:59