【发布时间】:2021-10-28 16:12:46
【问题描述】:
我正在用 React 构建一个电影应用程序,并且为此使用了 TMDB 的 api。我对功能组件完全陌生,并且有一些疑问。首先,我使用 api 获取所有类型,然后逐个迭代类型并调用另一个 API 以获取该类型的 20 部电影。
最终数据应如下所示:
[{
genre: 'action',
movies: [],
},
{
genre: 'adventure',
movies: [],
}]
这样我就可以迭代上面的对象数组并显示流派及其对应的电影。
现在,我被下面的代码卡住了。
const [movieData, setMovieData] = useState([]);
const fetchGenres = async () => {
const url = `https://api.themoviedb.org/3/genre/movie/list?api_key=xxx&language=en-US`;
try {
const res = await fetch(url);
const data = await res.json();
setMovieData(data.genres);
} catch (err) {
console.error(err);
}
}
现在,进入查询,
- 现在,movieData 是一个数组,仅包含流派。如何也添加电影并将其更改为对象数组?
- 如何在movieData中迭代流派并设置对应的电影?
- 还有其他简单/有效的方法吗?
非常感谢您的解决方案!
【问题讨论】:
-
如果您可以添加 api 的示例 json,将会有所帮助。
-
你的最终输出:为什么需要一个对象数组?单个对象会更有意义。
{ action: [], adventure: [] }. -
@HassanImam Codesandbox 链接包含两个 api:codesandbox.io/s/infallible-greider-vf18t?file=/src/App.js
-
@Andy 你能详细说明怎么做吗?也许是一个简短的解决方案?
标签: javascript reactjs react-component react-functional-component react-state