Задать вопрос
@justifycontent

Почему dispatch надо использовать 2 раза?

Компонента App.js
const App = () => {
  const dispatch = useDispatch();

  React.useEffect(() => {
// Вот тут я диспатчу fetchPizzas, но зачем? Если fetchPizzas это делает внутри себя.
    dispatch(fetchPizzas())
  }, [])


  return (
    <div className="wrapper">
      <Header />  {/*--------H E A D E R-------*/}
      <div className="content">
        <Route exact path='/' component={Home} /> {/*--------H O M E-------*/}
        <Route exact path='/cart' component={Cart} /> {/*--------C A R T-------*/}
      </div>
    </div>
  )
}

export default App;


actions:
import axios from 'axios'

const fetchPizzas = () => (dispatch) => {
  axios.get('http://localhost:3003/pizzas').then(({ data }) => {
    dispatch(setPizzas(data))
  })
}

const setPizzas = items => ({
  type: 'SET_PIZZAS',
  payload: items,
});

export default fetchPizzas

Почему недостаточно просто вызвать fetchPizzas()? Выполняю этот запрос с использованием redux-thunk
  • Вопрос задан
  • 263 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега React
У вас два action:
  1. Запусти запрос
  2. Сохрани результат

Поэтому и dispatch два.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@xirurgx3d
redux-thunk - это мидлвара, которая подразумевает собой промежуточный слой между вашим action и reduser,
в которой вы можете на одну реакцию экшина, повесить сколько угодно диспачеров
fetchPizzas - является функцией частичного применения, куда вы можете передать нужны вам параметры, а redux-thunk, уже во вложенную функцию передает вам dispatch, что бы вы могли в ну три своей функции, могли вызывать другие экшины через dispatch
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
ITK academy Воронеж
от 50 000 до 90 000 ₽
IT ATLAS Москва
от 200 000 до 250 000 ₽