我正在尝试使用 refs 访问嵌套的冷组件中的方法。这是为了删除嵌套删除组件中的数据。我的代码如下(简化代码):
家长班:
class Parent extends Component {
constructor(props) {
this.childref = React.createRef()
props.refs(this)
}
render() {
const elements = return [
<div onclick={this.callsupprimer(0)} />,
<div onclick={this.callsupprimer(1)} />
]
return (
<Fragment>
<Child refs={ref => this.childref = ref>
</Child>
loadToolData()
</Fragment>
)
}
callsupprimer = index => this.childRef.GrandChildRef.supprimer(index)
}
export withStyles(styles)(Parent)
儿童班:
class Child extends Component {
constructor(props) {
this.grandchildref = React.createRef()
props.refs(this)
}
render() {
return (
<GrandChild refs={ref => this.grandchildref = ref>
</GrandChild>
)
}
}
export withStyles(styles)(Child)
孙子班:
class GrandChild extends Component {
supprimer = (index) => {
console.log(index)
this.forceUpdate()
}
render() {
return (
//blah blah blah
)
}
}
export withStyles(styles)(GrandChild)
但是,我无法获得 supprimer 方法来调用 GrandChild 的 this 上下文中的更改。该方法被调用,但是以一种奇怪的方式。
它在组件加载并打印索引时被调用一次,但它不起作用 onlick !!!我什至没有在 grandChild 类中调用这个方法。请帮忙。
更新:除了方法名称之外,代码与编写的完全相同。