Я новичок в ReactJs и пытаюсь передать моему дочернему компоненту функцию, которая обновляет состояние в родительском компоненте!
Похоже, что дочерний компонент не может найти переданную функцию.
Сообщение об ошибке, которое я получаю, когда нажимаю: TypeError: this.props.cencelLogin не является функцией
Еще один, когда я обращаюсь к дочернему компоненту, «это ошибка консоли, которая не приводит к сбою программы»:
Предупреждение: нельзя обновлять во время существующего перехода состояния (например, в render). Методы рендеринга должны быть чистой функцией свойств и состояния.
Я console.info(this.props) = Я не могу найти доказательств существования getBackCancelLoginForm. "Я новичок в этом"
Смотрел несколько видео общения компонентов. Кажется, что эта техника работает; однако этот метод не работает для меня из-за небольшой ошибки.
это мой компонент родительского класса:
class Menu extends Component {
constructor(props){
super(props);
this.state = {
show: 'Defualt'
};
this.getBackCancelLoginForm = this.getBackCancelLoginForm.bind(this);
}
getBackCancelLoginForm = (showVal) => {
this.setState({ show: showVal });
}
render() {
this.CheckShowMenu();
return (
<div>
{ this.state.show === "Defualt" ? <DefualtMenu cencelLogin = {this.getBackCancelLoginForm}/> : (<div> </div>)}
</div>
);
}
}
это компонент моего дочернего класса:
class loginCom extends Component {
constructor(props){
super();
this.state = {
cancelSignIn: "Defualt",
};
this.cancel = this.cancel.bind(this);
}
cancel(props){
this.props.cencelLogin(this.state.cancelSignIn);
}
render() {
return (
<div>
<div className = "headerCancelBox" onClick = {this.cancel.bind(this)}>
</div>
);
}
}
В итоге: песня в форме должна быть отчаянной.
при нажатии «X» на дочернем компоненте -> должна срабатывать отмена функции, которая вызывает функцию поддержки. которые заменяют дочернюю функцию другой дочерней функцией "Меню по умолчанию"





Я нахожу свою глупую ошибку! Я должен признать, что трачу часы на решение этой проблемы.
Я оставлю ответ здесь навсегда, получаю ту же проблему!
Я только что передал реквизит не той дочерней функции. :)