Такие задачи легко решаются через родителя:
class Parent extends Component {
state = {
text: 'some text',
};
handleClick = () => {
this.setState({ text: 'some other text'});
};
render() {
const { text } = this.state;
return (
<Wrapper>
<Button onClick={this.handleClick} />
<Text>{text}</Text>
</Wrapper>
);
}
}
В компонентной структуре , как и в любой другой древовидной, физически невозможно расположить два компонента, чтобы они не находились в одном общем родителе. Это факт.
Если вы не используете
redux и задача носит частный характер, то передача колбека через родителя и даже через несколько компонентов, может быть простым и эффективным решением.
Другое дело, что в более менее сложном
react приложении хорошо использовать
redux или аналоги.