allFilms.map不是函数

时间:2019-07-10 17:49:31

标签: reactjs

我想从电影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 个答案:

答案 0 :(得分:1)

从您的代码中,我们只能猜测该错误是由您的响应类型引起的。

如果它是JSON array,则应尝试:

const data = await axios.get(url);
setAllFilms(data.json);