Вызов функции из другого компонента (React)

#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);
    }
}