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

React中useState初始值设为空数组,调用set传对象会得到什么结果?

结论

relatedPosts会直接被替换为object1本身,React不会强制保留初始值的数组类型,也不会自动把传入的对象包裹成数组。

原因说明

useState的初始值仅在组件第一次渲染时生效,仅用来给状态设置初始值,不会对后续的状态更新做任何类型限制。调用状态更新函数setRelatedPosts时,你传入什么值,状态就会被直接覆盖为对应的值,不会做任何隐式转换。

正确写法参考

如果你期望得到包含object1的数组,可以按需求选择写法:

  • 直接把状态替换为仅包含object1的新数组:
    setRelatedPosts([object1])
    
  • 在原有数组的基础上追加object1,保留之前的数组内容:
    setRelatedPosts(prevState => [...prevState, object1])
    

额外注意

你给出的object1定义存在语法错误,对象的键值对需要用冒号分隔,正确写法为:

const object1 = {name: "David", id: 5};

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 21:24:04