如何在反应状态挂钩中添加对象数组?

时间:2021-02-18 05:55:53

标签: javascript reactjs react-hooks

我从 API 中获取了以下格式的数据

{ 团队注册: [ { 支付:假, _id:602dea67451db71e71e4babd, 名称: 'MOH', 手机:'+919566879683', 标签:'JAR1NAH', __v: 0 }, { 支付:假, _id:602deb602924a41fb0c88415, 名称:'RAJ', 手机:'+919566879683', 标签:'JAR1NAH', __v: 0 }, { 支付:假, _id:602deb692924a41fb0c88416, name: '二', 手机:'+919566879683', 标签:'JAR1NAH', __v: 0 } ], 回合:[], 桌子: [], 正在进行中:0, 状态:'未完成', 总量:'0', _id:602dea4d451db71e71e4babb, 名称:'ATD', 标签:'JAR1NAH', 日期:'2021-02-25T18:30:00.000Z', __v: 0 }

在这个团队中注册的是一个对象数组。我需要将对象数组存储在状态挂钩中,并且需要访问其中的每个元素,并且我还需要将数据发送到另一个组件,

.then(response => {
        console.log(response.teamsregistered) //it shows correct output
        setData({...data,
            name:response.name,
            date:response.date,
            ongoinground:response.ongoinground,
            status:response.status,
            teamsregistered:response.teamsregistered
        })
       console.log(data.teamsregistered) // it shows "undefined"

当我运行 console.log(data.teamsregistered) 时,它显示“未定义”。如何在状态挂钩中设置并访问其中的每个元素。

1 个答案:

答案 0 :(得分:2)

<块引用>

当我运行 console.log(data.teamsregistered) 时,它显示“未定义”。如何在状态挂钩中设置并访问其中的每个元素。

这是因为setState() hook is asynchronous。因此,如果您想查看更新,则必须使用 useEffect() Hook 来查看状态中的更新 喜欢:-

.then(response => {
        console.log(response.teamsregistered) //it shows correct output
        setData({...data,
            name:response.name,
            date:response.date,
            ongoinground:response.ongoinground,
            status:response.status,
            teamsregistered:response.teamsregistered
        })
useEffect(() => { console.log(data.teamsregistered) }, [data])