функция defaultProps не принимает методы из класса компонента (родительская дочерняя связь)

Это родительский код, и все это прекрасно отрисовывается, и даже функция props oncheckselection идеально вызывается дочерним, но я не могу передать данные в мой метод компонента react getchilddata не дает мне неопределенных свойств или какой-то другой ошибки.

class Supertest extends React.Component {

    constructor(props) {
        super(props);
        this.state = {selected : []};
    }
    componentWillReceiveProps(Nextprops) {
      console.log(Nextprops.onCheckSelection)
    }
    getchilddata(value) {
      alert('yolo')
    }
    render() {
        return (<div>
          <div>{SimpleTable(this.props)}</div>
          </div>);
    }

}

Supertest.propTypes = {
    headers: React.PropTypes.instanceOf(Immutable.List),
    descriptors: React.PropTypes.instanceOf(Immutable.List),
    data: React.PropTypes.instanceOf(Immutable.List),
    rowTransform: React.PropTypes.func,
    rowSelected: React.PropTypes.func,
    headerSelected: React.PropTypes.func,
    selectable: React.PropTypes.bool,
    onCheckSelection: React.PropTypes.func,
    prescanRows: React.PropTypes.bool
};

Supertest.defaultProps = {
    headers: List(headers),
    descriptors: List(descriptors),
    data: List(data),
    rowTransform: (() => List()),
    rowSelected: ((dataItem) => {}),
    headerSelected: ((header) => {}),
    onCheckSelection : ((items) => {this.getchilddata}),
    selectable: true,
    prescanRows: true
};

Вызываемая дочерняя функция. Я могу печатать данные в консоли при редактировании родительского кода oncheckSelection.

    var checkSelection = function (value) {
        props.onCheckSelection(value)
}

1 ответ

  1. Я думаю, что это относится к чему-то другому, что вы хотели бы сослаться( это .getchilddata).

    как насчет перемещения функции onCheckSelection внутри класса iteself, что-то вроде:

        onCheckSelection(value){
            this.getchilddata(value);
            if(this.props.getchilddata){
                this.props.getchilddata(value);
            }
        }