#javascript #reactjs
#javascript #reactjs
Вопрос:
(Реагировать) У меня есть функция в компоненте (класс называется SideLogo)
toggleStatus(flag = !this.state.turned) {
this.setState({turned: flag})
}
И у меня есть другая функция в компоненте
_enterHandler() {
SideLogo.toggleStatus()
}
Я пытаюсь вызвать toggleStatus()
Комментарии:
1. props — это способ передачи данных, включая функции… поделитесь полным кодом для обоих компонентов…
2. Из другого компонента? По пользовательскому событию или при монтировании компонента?
3. @stever другой компонент, другой компонент действует, когда я прокручиваю страницу
Ответ №1:
Как уже упоминал СакоБу, вы можете предоставить функцию с помощью реквизитов. Посмотрите на эту скрипку: https://jsfiddle.net/wzhdampx /
В вашем другом компоненте:
_enterHandler() {
this.toggleStatus();
}
render() {
return <SideLogo toggleStatus={func => this.toggleStatus = func} />;
}
В компоненте SideLog:
componentDidMount() {
const { toggleStatus } = this.props;
if (toggleStatus) {
toggleStatus(this.toggleStatus);
}
}