Предположим, у меня есть следующий код реакции.Как может компонент React активировать функцию компонента ответа брата?
<Navigation parentWindow={this} />
<p>Sub Pages</p>
<ReactCSSTransitionGroup
component="div"
transitionName="page-transition"
transitionEnterTimeout={0}
transitionLeaveTimeout={500}
>
{React.cloneElement(this.props.children, {
key: location.pathname
})}
</ReactCSSTransitionGroup>
ReactCSSTransitionGroup
в конечном итоге вынести <ContactPage />
, который создается с помощью ContactPage.js
. Вот что ContactPage.js
выглядит следующим образом:
import React from 'react';
export default class Page extends React.Component
{
testMe() {alert('Hello World!');}
render() {return <div>Hello</div>;}
}
С моей <Navigation />
, который создается Navigation.js
, я хочу, чтобы иметь возможность, чтобы вызвать ContactPage.testMe()
. Так что я сделал это в моем Navigation.js
import React from 'react';
export default class Page extends React.Component
{
render() {
this.props.parentWindow.props.children.testMe();
return <div>Navigate me</div>;
}
}
Но когда я запускаю проект, мой переход дает мне ошибку:
Uncaught TypeError: this.props.parentWindow.props.children.testCall
Как обойти эту проблему?
У вас есть 'export default class Page extends React.Component' в вашем navigation.js. Это просто ошибка копирования и вставки? – user5325596