У меня есть этот код.Изменение контента на основе выбранного меню с кешированием
class Component {
state = {
selectedView: 'foo',
}
onMenuClicked(event, menuItem) {
switch(menuItem) {
case 'foo':
this.setState({ selectedView: 'foo'})
break;
case 'bar':
this.setState({ selectedView: 'bar'})
break;
}
}
renderBar() {
return <Bar />
}
renderFoo() {
return <Foo />
}
renderContent() {
switch(this.state.selectedView) {
case 'foo':
return this.renderFoo();
case 'bar':
return this.renderBar();
}
}
render() {
return(
<div>
<Menu onMenuSelected((e, menuItem) => this.onMenuClicked(e, menyItem)) /> // items foo and bar
{this.renderContent()}
</div>
)
}
Это прекрасно работает. Однако, так как Foo и бар компонент очень тяжелы и шансы пользователя переключаясь между этими компонентами являются высокими, я хотел бы иметь этот вид потока,
- На странице загрузки, визуализации Foo
- Если бар щелкнуть в первый раз, отобразить панель
- Для всех последующих изменений меню просто скройте/покажите компоненты foo/bar (на основе щелчка по меню) и не перезагружайте их при каждом изменении меню.
Мне нужно адаптировать мой код (самый чистый способ), чтобы иметь такое поведение. Любая помощь будет оценена по достоинству. Спасибо.