Я хочу вызвать функцию в родительском компоненте при нажатии кнопки в дочерний компонент,
class Home extends Component {
constructor(props) {
super(props);
this.Quiz = this.getQuizpopup.bind(this); //Function I want to call
this.state = {
latitude: LATITUDE,
}
};
}
А в дочернем компоненте я использую для вызова функции следующим образом
<View>
<Button onPress = {this.props.Quiz()} buttonStyle = {styles.buttonStyle} title = "MpTest" />
</View>
Можете ли вы добавить полный код из компонента Home?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


вам нужно передать реквизиты, чтобы использовать эту функцию в дочернем компоненте.
class Parent extends Component{
quiz = () => {
//function you want to call
}
render(){
return(
<Child quiz = {this.quiz}> //passing quiz function as prop to child component
)
}}
Вы должны передать опору как обратный вызов в дочернем компоненте, который при щелчке может вызвать вызов функции в родительском компоненте.
Ваш код должен выглядеть так:
class Home extends Component {
constructor(props) {
super(props);
this.Quiz = this.getQuizpopup.bind(this); //Function I want to call
this.state = {
latitude: LATITUDE,
}
}
Quiz = () => {
//button click handler.
}
render () {
return (
<Child
onQuizButtonClick = {this.Quiz} />
)
}
}
а у вашего ребенка код должен быть:
<Button onPress = {() => this.props.onQuizButtonClick()} buttonStyle = {styles.buttonStyle} title = "MpTest" />
должен быть
this.Quiz- так как вашей функции викторины нет в реквизите