尝试从对象中解构值会返回错误

时间:2019-01-28 16:31:03

标签: javascript json reactjs object

我正在尝试使用解构从对象中获取名称属性,但返回错误“无法读取未定义的属性名称。

    // Get genres for given movie
    getGenres = (genreIds, genres) => {
        return genreIds.map(genreId => {
            const filteredGenres = genres.filter(genre => genre.id === genreId);
            const { name } = filteredGenres[0];
            return name;
        })
    };

如果我控制台日志filteredGenres[0]确实返回了带有名称和ID的有效对象,那么我也已使用typeof进行了检查,以确保。结果是: {id: 14, name: "Fantasy"}

如果我尝试控制台日志filteredGenres[0].name,我也会得到相同的无法读取未定义错误的属性名称。

我不确定自己在做什么错吗?非常感谢您的任何帮助! :)

我已经按照要求创建了一个堆叠闪电战。有问题的文件为NowPlaying.js

https://stackblitz.com/edit/react-ow3x3u

1 个答案:

答案 0 :(得分:1)

根据您的Stackblitz示例,状态属性genres被初始化为空数组。

这意味着当您将其作为道具传递给NowPlaying时,filterGenres也会是一个空数组,因此会出现错误。

这仅在获取流派之前发生。 genres被获取并更新状态后,状态被更新,一切看起来都很好。

您必须考虑genres数组为空。