Ошибка при переходе между страницами с асинхронными данными с реагирующим маршрутизатором - PullRequest
0 голосов
/ 24 ноября 2018

Так что в основном иногда, когда я прокручиваю страницы между React-роутером и пытаюсь перейти на страницу с асинхронным кодом, который запускается при запуске жизненного цикла (componentDidMount), он выдает мне сообщение о том, что вы не можете отобразить состояние'null'.

вопрос в том ... как я могу предотвратить это при переходе между страницами?

Пример (панель инструментов)

class Dashboard extends Component {
    componentDidMount() {
        this.props.fetchMovies();
        this.props.fetchSeries();
    }
    handleFetchMovies() {
        if(this.props.assets.fetchMoviesError) {
            return (
                <div className="loading">
                    <h1>{this.props.assets.fetchMoviesError}</h1>
                </div>
            );
        } else if(this.props.assets.loadingMovies) {
            return (
                <div className="loading">
                    <h1>Loading...</h1>
                </div>
            );
        } else {
            return this.props.assets.latestMovies.map(movie => {
                const movieURL = movie.title.split(' ').join('+').toLowerCase().trim();
                return (
                        <div className="latest" key={movie._id}>
                            <Link to={`/movie/${movieURL}`}>
                                <div className="asset-cover" style={{ backgroundImage: `url(${movie.poster})` }}></div>
                            </Link>
                            <h1><Link to={`/movie/${movieURL}`}>{movie.title}</Link></h1>
                            <Link to={`/sort/years/${movie.year }`}>{movie.year}</Link>
                        </div>
                    )
                }
            )
        }
    }

всякий раз, когда я иду из этогостраницу на другую страницу и попробуйте вернуться к ней, там написано

this.props.assets.latestMovies.map не является функцией

, потому что функция componentDidMount нене работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...