如何在React Native打字稿中从父级调用子级组件方法

时间:2019-07-25 13:15:32

标签: typescript react-native

你好,我是React Native的新打字员,在此示例代码中,我想从父类的parentCall函数中的子组件调用testChild函数,而我不知道如何保留每个子组件的引用 我无法更改子组件代码 如何为每个子组件调用testChild?

class parent extends React.Component {
   public render(): JSX.Element {
        return (
         <child/>
         <child/>
               )
 public parentCall(): void{
   //call testChild for each Child component ??
}

}
class child extends React.Component {
 public render(): JSX.Element {
        return (
               <Text>Text</Text>
               )

 public testChild (): string{
   return Data ;
}

2 个答案:

答案 0 :(得分:0)

如果我对您的理解正确,则可以将每个<Child />组件存储在类似const children: JSX.Element[] = [Child, Child]的数组中。 render方法允许您传递要渲染的组件数组,因此,这样做的好处是,您现在有了一个可以循环执行testChild的变量。

答案 1 :(得分:0)

我通过使用res解决问题并定义childRef字段 并使用此代码将子组件的引用存储在childRef

private onRef= (ref) => this.childRef= ref

并将其设置在子组件中

<child ref={this.onRef} />

现在使用childRef,我可以调用其方法

childRef.testChild()