这是父代码,整个事情完美呈现,甚至 props 函数 oncheckselect 也被孩子完美调用,但我无法将数据传递给我的反应组件方法 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
};
已调用的子函数。当我在检查选择上编辑父代码时,我可以在控制台中打印数据。
var checkSelection = function (value) {
props.onCheckSelection(value)
}
我认为这指的是您希望它引用的不同内容(this.getchilddata)。
在类 iteself 中移动函数 onCheckSelect 怎么样,如下所示:
onCheckSelection(value){
this.getchilddata(value);
if(this.props.getchilddata){
this.props.getchilddata(value);
}
}