javascript - 使用函数返回 Prop 不返回 Prop

标签 javascript reactjs api

我正在尝试使用一种方法在 React 组件上定义一个 Prop 。该方法运行良好,我可以向控制台返回正确的结果。但是,当我使用 React 浏览器扩展程序检查我的组件时,我看不到任何 props 分配给该组件,我也不能在组件内使用它们。

class NowPlaying extends Component {

state = {
    genres: []
};

componentDidMount() {
    // Fetch Genre Data
    axios.get(`${base_url}genre/movie/list?api_key=${api_key}`)
        .then(res => this.setState({ genres: res.data.genres }))
}

getGenreTitles = (genreIds, genres) => {
    genreIds.map(genreId => {
        const filteredGenres = genres.filter(genre => genre.id === genreId);
        const { name } = filteredGenres[0];
        return name;
    })
};

render() {
    return this.props.movies.map((movie) => (
       <MovieItem
           key={movie.id}
           movie={movie}
           genres={this.getGenreTitles(movie.genre_ids, this.state.genres)}
       />
    ));
}
}

期望名称作为 prop 返回,然后可以在 movieitem 组件中使用。

最佳答案

getGenreTitles 不返回任何内容。 (相比之下,请注意您传递给 map() 的函数如何具有 return 语句。)从函数声明中删除大括号以利用默认 return对于箭头函数:

getGenreTitles = (genreIds, genres) =>
    genreIds.map(genreId => {
        const filteredGenres = genres.filter(genre => genre.id === genreId);
        const { name } = filteredGenres[0];
        return name;
    });

或者在函数体中加入return语句:

getGenreTitles = (genreIds, genres) => {
    return genreIds.map(genreId => {
        const filteredGenres = genres.filter(genre => genre.id === genreId);
        const { name } = filteredGenres[0];
        return name;
    });
}

关于javascript - 使用函数返回 Prop 不返回 Prop ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54401950/

相关文章:

javascript - 如何使用 Spectron 访问客户端窗口 javascript 全局变量

javascript - 在输入选择填充数据字段之前触发模糊验证 - ReactJS

javascript - 我可以将我的 React.Component 子类添加到 ESLint 规则吗?

reactjs - 如何在函数中读取 this.props

javascript - 构建调用以更新全局和本地状态

javascript - 如何编写 JavaScript API?

javascript - 如何在 href 中的 onclick 上附加变量/值

javascript - 如何使用 javascript 将相对 img src 标记更新为绝对路径

javascript - React固定数据表: Uncaught TypeError: this. _dataList.getSize不是函数

api - Spotify API 群组艺术家/专辑