Невозможно прочитать свойство "enqueueSetState" неопределенного в ReactJS

Я не совсем понимаю, почему я получаю эту ошибку.

class ContentProcessing extends Component {

 constructor(props) {
 super(props);

 this.state = {content: currentData};
 this.setData = this.setData.bind(this);
 }

 setData(data) {
 this.setState({
 content: data
 });
 }

 render() {
 return (
 <div>
 <card title="{this.state.content}">
 </card></div>
 );
 }
}

Ошибка сообщается в

this.setState({
 content: data
 });

В основном я запускаю setData из Button в другом классе, как только я нажимаю на нее, моя страница прерывается, и я получаю сообщение об ошибке.

Я проверил, и это похоже на setData(), this.state не определено, поэтому я предполагаю, что, вероятно, там, где проблема возникает.

Я просмотрел несколько других ответов, которые были связаны с этой же проблемой, но их исправления, похоже, не работают для меня.

3 ответа

Эта setData бесполезна, так как она просто останется undefined все время

setData(data) {
 this.setState({
 content: data
 });
 }

Вы можете какое-то event которое будет отвечать за setState() Что-то вроде:

render() {
 return (
 <div>
 <card title="{this.state.content}" onclick="{()" ==""> {this.setData}}/>
 </card></div>
 );
 }
}


Наверное, вы вызываете setData из компонента Card.

Если это так, отправьте setData в качестве компонента prop to Card

// Below code snippet in ContentProcessing component
<div>
 </div>

Теперь вы можете получить доступ к методу setData в компоненте Card как prop.

// Call it in Card component
this.props.setData(data);


Внутри вашего конструктора у вас есть:

this.state = {content: currentData};

Откуда появилась текущая информация? Если он должен быть передан в качестве опоры, то измените эту строку на:

this.state = {content: prop.currentData};

licensed under cc by-sa 3.0 with attribution.