如何卸载React组件并再次使用Suspense备用广告?

时间:2019-06-25 12:03:31

标签: reactjs react-suspense

我有这样的index.js:

const MovieInfo = lazy(() => import("./movie-info"));

export default function MoviesGrid() {
  return (
    <Suspense fallback={<Loader />}>
      <Router>
        <FilteredMovies path="/" />
        <MovieInfo path="/:movieId" />
      </Router>
    </Suspense>
  );
}

当我点击电影时,我得到一个后备并渲染了电影。 然后,我返回并单击另一个,但没有看到后备。 因为我将id传递给MovieInfo,所以要在MovieInfo组件中的useEffect中获取该电影数据,如下所示:

  useEffect(() => {
    getMovieInfo(movieId).then(movieInfo => setMovieInfo(movieInfo));
  }, [movieId]);

我该如何做每次单击新电影而不仅仅是第一部电影时总是显示后备的事情?

0 个答案:

没有答案