Ошибка типа: _this.props.menuData не является функцией реагировать

Я пытаюсь передать объект из дочернего компонента при отправке, но я получаю вышеуказанную ошибку

Ниже приведен код в дочернем и родительском компоненте

overideChange = (e) => {
      let menuObj = {
            currency: e.target.currency.value
      }
      this.props.menuData(menuObj);             
}

<OlmiGridNavMenu  menuData={this.menuData} />

menuData(data) {
      console.log('data--->', data);
}

Всего 3 ответа


вам нужно связать this

<OlmiGridNavMenu  menuData={this.menuData.bind(this)} />

Родительский компонент:

menuData=(data)=>{
    console.log('data--->', data);
}
.
.
.

render(){

    return(
       <OlmiGridNavMenu  menuData={this.menuData} />
    )
}

Перед отправкой функции menuData в качестве реквизита из родительского компонента, привяжите его к этому реквизиту.

<OlmiGridNavMenu  menuData={this.menuData.bind(this)} />

или вы можете привязать это к menuData в конструкторе класса.

class ParentComponent extends React.Component {
    constructor(props) {
        super(props);
        this.menuData = this.menuData.bind(this);
    }

    menuData(data) {
        console.log(data)
    }

   render() {
        return(
            <div>
                <OlmiGridNavMenu  menuData={this.menuData} />
            </div>
        );
   }
}

Есть идеи?

10000