Child.js:export default class Child extends Component { testFunc = () => { console.log("test") } componentDidMount() { this.props.onRef(this) }父.js:export default class Parent extends Component { render() { return ( <> <Child onRef = {ref => (this.child=ref)}> </Child> <Button onPress={this.child.testFunc()}></Button> </> ) }}我想知道如何从 React Native 的父组件调用子组件中的函数?我尝试了上面的代码,我收到错误“TypeError undefined is not an object (evaluate '_this.child.testFunc')。当我在这里尝试建议的解决方案时遇到同样的错误:Call child function from parent component in React Native。有人可以帮我吗?
2 回答
人到中年有点甜
TA贡献1895条经验 获得超7个赞
在我看来,这是一个糟糕的设计。如果您希望testFunc()
在父组件中可用,那么您应该在父组件中定义该函数。
为了在子组件中使用此功能,您可以将此功能传递给道具中的子组件。
从 ParentComponent.js 你可以像这样传递这个函数
<ChildComponent func = {testFunc} />
在 ChildComponent.js 中,您可以像这样回调此函数 this.props.func()
当年话下
TA贡献1890条经验 获得超9个赞
请试试这个。由于 javascript 语法,在调用 testFunc 时删除括号。
export default class Parent extends Component {
render() {
return (
<>
<Child onRef = {ref => (this.child=ref)}> </Child>
<Button onPress={this.child.testFunc}></Button>
</>
)
}
}
添加回答
举报
0/150
提交
取消