为了账号安全,请及时绑定邮箱和手机立即绑定

访问对象内部的数组

访问对象内部的数组

哆啦的时光机 2022-10-27 14:27:29
我有一个 javascript 对象,我想通过它的一个属性进行映射,该属性是一个数组。但是由于某种原因,当我映射它甚至调用我知道是数组的属性上的 .length 时,它会将属性视为不是数组。对象是从异步对象中的 axios get 请求创建的。useEffect(() => {   async function fetchData() {            const dummyData = await axios.get(                'http://localhost:3000/data',            );            dummyData.data.videos.map(video => {                return (                    setCurrentEdition(video.currentEdition[0])                );            });        }        fetchArtPiece();        return () => console.log('clean artPiece detail page');    }, []);currentEdition: {  videoAssociated: {id: "oYu5J4TQbJ728c45ExWopZicY9LrCxNNTEZ3"}  bids: []  id: "Kr3fjeo51"  owners: (2) [{…}, {…}]}我现在要做的就是 .map() ,它会引发未定义的错误currentEdition.owners.map(owners => console.log(owners))即使当我检查 currentEdition.owners.length 时,它也会抛出一个未定义的错误,当我记录 currentEdition.owners 时,proto: 是一个数组,它有方括号和所有内容,所以为什么在我尝试操作时不将其视为数组在上面?
查看完整描述

1 回答

?
蛊毒传说

TA贡献1895条经验 获得超3个赞

好吧,既然您正在处理异步数据,您应该始终确保您拥有数据,然后开始使用它。

所以要解决这个问题,你需要为你的 JSX 设置一个条件,如下所示:

<Grid item xs={7}> {Array.isArray(currentEdition?.owners) && console.log(currentEdition.owners.length)} </Grid>



查看完整回答
反对 回复 2022-10-27
  • 1 回答
  • 0 关注
  • 91 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信