@danyvasnafig

Где фетчить данные, которые используются в нескольких компонентах REDUX?

У меня на всех страницах фетчятся одни и те же данные.
Где можно их зафетчить, чтобы не надо было это делать каждый раз в каждом компоненте?
Проблема ещё в том, что используя Роутер, мы подключаем компоненты таким образом.
<Layout>
      <Switch>          
          <Route path='/' exact component={EnrolleList}/> 
          <Route path='/create-enrolle' exact component={CreateEnrolle}/>
          <Route path='/schedule' exact component={Schedule}/>
          <Route path='/exams' exact component={Exams}/>
          <Route path='/results' exact component={Results}/>
          <Route path='/enrollee/:id' exact component={Enrollee}/> 
          <Route path='/faculty-list' exact component={FacultyList}/>  
          <Route path='/faculties/' exact component={Faculties}/> 
          <Route path='/faculty/:id' exact component={Facuclty}/> 
          <Route path='/edit-faculty' exact component={EditFaculty}/>         
          <Route path='/add-new-faculty' exact component={AddNewFaculty}/>       
          <Redirect to='/' />
        </Switch>
    </Layout>

Вообще, не было бы роута, я бы создал HOC и там зафетчил скорее всего, после чего подключил его в APP.
Но используя роуты, каждый компонент должен быть записан отдельно под каждый роут.
В общем подскажите пожалуйста, где лучше всего это делать, и где это обычно делаете вы
  • Вопрос задан
  • 70 просмотров
Решения вопроса 1
А прописать в компоненте логику? Если данные уже есть, не фетчить, можно еще дату експайра прописать в стор, мол если фетчил 10 минут назад, перефетчи.
Одинаковый код, необязательно в каждом компоненте писать.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@historydev
Острая аллергия на анимешников
При запуске приложения => app.js и уже там записывайте в редукс данные, получится один запрос на сервер (Если конечно вы не хотите их обновлять. Если нужно будет обновиться, создайте колл в редуксе который будет колить в useEffect мол дружище, обнови-ка данные.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы