Babel выдает Uncaught TypeError: Cannot read property '' of null

Я застрял с этой ошибкой, которую я получаю в babel: UnCaught TypeError: не удается прочитать свойство 'term', равное нулю. Это происходит, когда я передаю состояние компонента в свойство playlists дочернего компонента Playlist.

class PlaylistSearchBar extends React.Component{

constuctor(){
    super();
    const initialState = {
         term: {tracks: [], playlists: []}
    }

    this.state = {
         ...initialState
    };
}

return(
        <div>
            <div className = "main">
                    <div className = "ui massive icon input">
                        <input type = "text" placeholder = "Search for a song or artist..." className = "js-search input-search"/>
                        <i className = "search icon js-submit"></i>
                    </div>
                    <button onclick = {localStorageClear()} className = "clear">Clear Playlist</button>
            </div>

            <div className = "search-results js-search-results ui cards">

            </div>
Error here at term  --> <Playlist playlists = {this.state.term.playlists} setTracksToNil = {this.setState({tracks: []})} embedItems = {this.getEmbed}/>
           </div>
    );

Любая помощь будет оценена по достоинству. Спасибо.

Babel выдает Uncaught TypeError: Cannot read property &apos;&apos; of null

вам нужно вызвать super() в своем конструкторе, прежде чем использовать this

Anthony 27.03.2018 02:45

в вашем JSX также есть проблемы - вы используете class вместо className, а ваша кнопка onclick представляет собой обычный HTML

Anthony 27.03.2018 02:46

Я ценю ваш отзыв. Однако я получаю новую ошибку, которая не имеет для меня смысла. Выложил прикрепление выше.

flo527 27.03.2018 02:49

в чем ошибка?

Anthony 27.03.2018 02:50

у вас опечатка, constuctor вместо constructor

Anthony 27.03.2018 03:01

Это было неловко. Спасибо.

flo527 27.03.2018 03:10

мы все были там - не переживайте

Anthony 27.03.2018 03:18

это должно быть закрыто, потому что это опечатка?

Omar 27.03.2018 03:23
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
8
260
1

Ответы 1

Пара ошибок, конструктор неправильно написан, и вы не включили функцию рендеринга.

class PlaylistSearchBar extends React.Component {
  constructor(props) {
    super(props);
    const initialState = {
      term: { tracks: [], playlists: [] }
    }
    this.state = {
      ...initialState
    };
  }

  render() {
    return (
      <div>
        <div className = "main">
          <div className = "ui massive icon input">
            <input type = "text" placeholder = "Search for a song or artist..." className = "js-search input-search" />
            <i className = "search icon js-submit"></i>
          </div>
          <button onclick = {localStorageClear()} className = "clear">Clear Playlist</button>
        </div>

        <div className = "search-results js-search-results ui cards">

        </div>
        <Playlist playlists = {this.state.term.playlists} setTracksToNil = {this.setState({ tracks: [] })} embedItems = {this.getEmbed} />
      </div>
    );
  }
}

Другие вопросы по теме