TypeError: Не удается прочитать свойство 'map' из null -> Из-за localStorage? - PullRequest
0 голосов
/ 03 февраля 2020

Я развернул свое приложение React на страницах GitHub (https://github.com/qriscilla/movie-search-application), но на домашней странице не отображается то, что он должен показывать.

Ниже показано, что я вижу, когда открываюсь приложение на моем локальном хосте через npm start enter image description here

Но на странице GitHub я развернул свой код в (https://qriscilla.github.io/movie-search-application/# / ), он показывает только фоновое изображение как таковое: enter image description here

И когда я открываю консоль, мне выдаются следующие два сообщения об ошибках: enter image description here

TypeError: Cannot read property 'map' of null
    at O (Movies.js:8)
    at sa (react-dom.production.min.js:154)
    at qa (react-dom.production.min.js:174)
    at Sl (react-dom.production.min.js:261)
    at mu (react-dom.production.min.js:230)
    at pu (react-dom.production.min.js:229)
    at iu (react-dom.production.min.js:223)
    at react-dom.production.min.js:121
    at t.unstable_runWithPriority (scheduler.production.min.js:18)
    at Bo (react-dom.production.min.js:120)

Uncaught TypeError: Cannot read property 'map' of null
    at O (Movies.js:8)
    at sa (react-dom.production.min.js:154)
    at qa (react-dom.production.min.js:174)
    at Sl (react-dom.production.min.js:261)
    at mu (react-dom.production.min.js:230)
    at pu (react-dom.production.min.js:229)
    at iu (react-dom.production.min.js:223)
    at react-dom.production.min.js:121
    at t.unstable_runWithPriority (scheduler.production.min.js:18)
    at Bo (react-dom.production.min.js:120)

Я думаю, это может быть из-за того, что на самом деле не хранятся данные API? Поскольку локальное хранилище отображается пустым: enter image description here

В любом случае, спасибо заранее! Весь мой код доступен в моем хранилище publi c (https://github.com/qriscilla/movie-search-application) для вашего обзора.

1 Ответ

2 голосов
/ 03 февраля 2020

Я видел, что вы выбираете из localStorage, но не обрабатывает случай item movies is not exist in localStorage

Вы должны установить значение по умолчанию (пустой массив) для этого случая.

in ./App.js file

const json = localStorage.getItem('movies');
const movies = JSON.parse(json) || []; // set default value here
this.setState({movies});
...