Внесите эти изменения в ваш основной файл.
showComponent = (component) => {
this.setState({currentComponent: component})
}
let checkCurrentScreen = this.state.currentScreen;
{checkCurrentScreen === "homeScreen" ? (
<Homescreen showComponent={this.state.showComponent} />
) : checkCurrentScreen ? (
<PlayerScreen showComponent={this.state.showComponent} />
) : <DefaultScreen />
}
Передайте ваш компонент нажатием кнопки
const handleComponentChange = (e, component) => {
e.preventDefault();
props.showComponent(component)
}
Я извиняюсь за свой тип o, я исправил выше. Последний метод - это то, что я использую в отдельном компоненте, мне нравится этот подход, потому что он позволяет использовать его метод практически везде. Вот пример используемой кнопки:
<button
onClick={e => handleComponentChange(e, "author")}
className="comment-submit-button">Cancel
</button>
Эта кнопка передаст "e" и имя компонента методу выше возврата. Это позволяет сделать этот метод переносимым, вот полный метод, возможно, это поможет.
const handleComponentChange = (e, component) => { // passed in e
e.preventDefault(); // for this
props.showComponent(component); // called method from index.js
}
С помощью handleComponentChange я могу передать любой реквизит / состояние для использования по своему усмотрению, плюсназвание моего компонента, которое я хочу сделать. Я был в состоянии легко добавить е для предотвращения по умолчанию, а также имя.
ShowComponent находится в моем индексном файле, где у меня есть компоненты, которые будут отображаться условно.