Я застрял с этой ошибкой, которую я получаю в 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>
);
Любая помощь будет оценена по достоинству. Спасибо.
в вашем JSX также есть проблемы - вы используете class вместо className, а ваша кнопка onclick представляет собой обычный HTML
Я ценю ваш отзыв. Однако я получаю новую ошибку, которая не имеет для меня смысла. Выложил прикрепление выше.
в чем ошибка?
у вас опечатка, constuctor вместо constructor
Это было неловко. Спасибо.
мы все были там - не переживайте
это должно быть закрыто, потому что это опечатка?





Пара ошибок, конструктор неправильно написан, и вы не включили функцию рендеринга.
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>
);
}
}
вам нужно вызвать
super()в своем конструкторе, прежде чем использоватьthis