defaultProps函数不接受组件类中的方法(Parent Child Comunication)

时间:2017-01-13 10:55:59

标签: javascript reactjs ecmascript-6

这是父代码,整个事情渲染得很完美,甚至支持功能oncheckselection也被孩子完美调用但是我无法将数据传递给我的react组件方法getchilddata给了我undefined没有属性或其他错误。< / p>

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 个答案:

答案 0 :(得分:0)

我认为 指的是您希望引用的不同内容( this .getchilddata )。

如何在类iteself中移动函数onCheckSelection,如:

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