React Native:无法从child调用父方法

时间:2017-11-14 10:51:27

标签: react-native

我在父组件中有这个功能,我试图在子进程中调用这个方法/函数,如下所示:

div.chapo {
width: 70%;
display: table-cell;
}

div.img_header {
width: 30%;
display: table-cell;
background-position: center center;
background-repeat: no-repeat;
background-size: cover;
-webkit-background-size: cover;
background-image: url(...);
}

在孩子身上:

buttonPressed = () => {
  console.log('button pressed')
}

<childComp ref={ref => this.feedback = ref}
           onPress={this.buttonPressed}
/>

无论我尝试什么,它都没有用。

2 个答案:

答案 0 :(得分:2)

你正在传递onPress道具给孩子并且在孩子中调用buttonPressed。它应该是这样的:

<Animated.View>
  ...   // other views
  <View>
    <TouchableOpacity onPress={this.props.onPress}> // calling here
     ...
    </TouchableOpacity>

  </View>
</Animated.View>

答案 1 :(得分:0)

我认为在子组件中你应该调用this.props.onPress(),因为你传递的属性名称是onPress。此外,当您想要调用该函数时,不要忘记放置()。所以它应该是:

<Animated.View>
  ...   // other views
  <View>
    <TouchableOpacity onPress={this.props.onPress()}> // calling here
     ...
    </TouchableOpacity>

  </View>
</Animated.View>