【发布时间】:2021-01-14 19:34:01
【问题描述】:
我正在将一个数组导入“restMovies”,它工作正常 - 所有数据都在“restmovies”中,并通过上下文提供程序传递给应用程序的其余部分。
但是,我需要在数组中进行更改,因此我尝试将“restMovies”数组复制到“movies”数组,该数组将被传递到应用程序的其余部分。
但由于某种原因我不能“设置电影”,电影数组保持为空。
帮助?
export const MoviesContext = createContext();
export const MoviesContextProvider = (props) =>
{
const [restMovies, setRestMovies] = useState([]);
const [movies, setMovies] = useState([])
useEffect(() =>
{
axios.get("https://api.tvmaze.com/shows").then(resp => setRestMovies(resp.data));
}, [restMovies.values])
useEffect(() =>
{
restMovies.map(item =>
{
setMovies([...movies, item])
})
}, [movies.values, restMovies.values])
return (
<MoviesContext.Provider value = {[movies]}>
{props.children}
</MoviesContext.Provider>)
}
【问题讨论】:
-
我不明白,为什么你有 useEffect 听movies.values作为依赖?您是否尝试过在第一个 useEffect 挂钩中分配电影?
标签: arrays reactjs react-hooks context-api