Используя «Реак + редукс», я создаю приложение, в котором вы отвечаете на вопросы, 5 вопросов за шаг и около 20 шагов. При запуске нового шага я сохраняю прогресс в localStorage.
Моя структура приложения выглядит следующим образом:
class App extends Component {
render() {
return (
<Provider store={store}>
<Router>
<div id="ocean-model">
<Topbar />
<main id="main">
<Route exact path="/" component={Landing} />
<Switch>
<PrivateRoute exact path="/survey" component={Survey} />
</Switch>
<Switch>
<AdminRoute exact path="/edit-questions" component={EditQuestions} />
<AdminRoute exact path="/add-question" component={AddQuestion} />
</Switch>
</main>
</div>
</Router>
</Provider>
);
}
}
В компоненте «Съемка» я использую контролируемые входные данные для сохранения текущих ответов в локальное состояние, а при отправке всех 5 ответов я использую избыточное действие для сохранения данных ответов в localStorage и избыточном хранилище.
В компоненте Topbar у меня есть кнопка, на которой я хотел бы взять текущий прогресс из магазина приставок, но также получить текущие ответы на вопросы (например, 2 из 5), которые доступны только в локальном компоненте Survey. состояние.
Нужно ли изменять структуру приложения, чтобы Topbar и Survey могли совместно использовать состояние, или, возможно, в Survey мне нужно каким-то образом прослушивать событие нажатия кнопки из Topbar?