开发者问题收集

allfilms.map不是功能

2019-07-10
37

我想从电影 API 获取 JSON, 我获取了变量“data”中的数据,但即使加载了数据,我的数组“allFilms”仍然是空的......(参见下面的代码), 请问为什么我的数组仍然是空的?

const [allFilms, setAllFilms] = useState([]);
const [pending, setPending] = useState(true);
const [activePage, setActivePage] = useState(1)
const url = `https://api.themoviedb.org/3/movie/top_rated?api_key=${process.env.REACT_APP_API_KEY}&language=fr&page=${activePage}`;

useEffect(() => {
        loadAllFilms();
    }, []);

    async function loadAllFilms() {
        try {
            const data = await axios.get(url);
            console.log("data ", data); **<--- THIS CONSOLE.LOG GOT THE DATA**
            setAllFilms(data);
            console.log("allfilms ", allFilms); **<--- THIS CONSOLE.LOG IS EMPTY**
            setPending(false);
        } catch (error) {
            console.error(error);
    }
};
1个回答

从您的代码中,我们只能猜测错误是由于您的响应类型造成的。

如果它是一个 JSON 数组 ,您应该尝试:

const data = await axios.get(url);
setAllFilms(data.json);
Dennis Vash
2019-07-10