Как прокинуть данные из promise(axios) в state redux?

componentDidMount(){

     axios.post('/', {})
      .then(function (response) {
        this.props.allDocuments(response.data);
      })

      .catch(function (error) {
        console.log(error);
      });
      
    }


Такой подход мне выдает ошибку:
TypeError: Cannot read property 'props' of undefined
at App.js:15
at

Как правильно передать контекст?
Заранее спасибо
  • Вопрос задан
  • 582 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега React
axios.post('/', {})
  .then((response) => {
    this.props.allDocuments(response.data);
  })
  .catch(function (error) {
    console.log(error);
  });

Или bind используйте.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
maxfarseer
@maxfarseer
https://maxpfrontend.ru, обучаю реакту и компании
Конкретно в вашем примере, вы можете просто сохранить ссылку на this или использовать любые другие варианты привязки/проброса контекста...
const that = this
that.props...

Но это вредный(!!!) совет. Так как скорее всего вы что-то делаете "не по учебнику". В componentDidMount у вас должен быть вызов action creator'a, внутри которого будет вызываться axios и из then которого вы будете dispatch'ить событие.

p.s. не забывайте про подключенный redux-thunk, иначе вам придется dispatch импортировать в свои экшены, что тоже будет не по учебнику ;)
Ответ написан
Ваш ответ на вопрос

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

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