首页 > 解决方案 > 如何正确将数组添加到 useState?

问题描述

我定义这样的状态:

const [user, setUser] = useState( [] as { userId: string; userHabbitList: string[] }[], )

我的 API 将是这样的:

userList = [
 {
   "id": "1",
   "userHabbit": [
    {
      "userHabbitId": "1"
    },
    {
      "userHabbitId": "2"
    }
   ]
 },
 {
   "id": "2",
   "userHabbit": [
    {
      "userHabbitId": "3"
    },
    {
      "userHabbitId": "4"
    }
   ]
 }
]

这是我的工作:

setUser(
 userList.map( e => 
  ({
    userId: e.id, 
    userHabbitList: e.userHabbit.map( u => u.userHabbitId)
  })
 )
)

但是 userHabbitList 仍然是空的,

这是我的预期结果:

[
 {userId: "1", userHabbitList: ["1","2"]},
 {userId: "2", userHabbitList: ["3","4"]}
]

标签: reactjsreact-hooksuse-state

解决方案


推荐阅读