Uncaught TypeError: Невозможно прочитать свойство 'concat' из неопределенного - PullRequest
0 голосов
/ 04 января 2019
onDrop(picture) {
    this.setState({
        pictures: this.state.pictures.concat(picture),
    });
}

Uncaught TypeError: Невозможно прочитать свойство 'concat' из неопределенного

1 Ответ

0 голосов
/ 04 января 2019

Вы должны инициировать значение this.state.pictures внутри конструктора.Вы можете установить состояние непосредственно только внутри constructor, в любом другом случае используйте this.setState

Если вы не инициализируете состояние и не связываете методы, вам не нужно реализовыватьконструктор для вашего компонента React.

Конструктор для компонента React вызывается перед его монтированием.При реализации конструктора для подкласса React.Component вы должны вызывать super (props) перед любым другим оператором.В противном случае this.props будет неопределенным в конструкторе, что может привести к ошибкам.

Как правило, в React конструкторы используются только для двух целей:

Инициализация локального состояния путем назначения объектаthis.state.Привязка методов обработчика событий к экземпляру.Вы не должны вызывать setState () в конструкторе ().Вместо этого, если вашему компоненту нужно использовать локальное состояние, присвойте начальное состояние this.state непосредственно в конструкторе:

constructor(props) {
    super(props);
    // Don't call this.setState() here!
    this.state = { counter: 0 };
    this.handleClick = this.handleClick.bind(this);
}

Конструктор - это единственное место, где вы должны назначить this.state напрямую.Во всех других методах вам нужно использовать this.setState ().

https://reactjs.org/docs/react-component.html#constructor

constructor(props) {
   super(props)
   this.state.pictures = []
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...