Когда использовать отправку в создателе действий? - PullRequest
0 голосов
/ 11 июля 2020

Я определил две функции в своем ActionCreator. js файл Первый:

export const getAudioForVerification = ()=>{
return fetch(baseUrl+'audio',{
    // Get Request
}
.then(response=>response.json());}

Второй:

export const audioVerificationResult = (audioId,verificationResult) =>(dispatch)=>{
return fetch(baseUrl+'audio',{
    // PUT Request
})
.then(response=>response.json());
}

MainFunction:

const mapDispatchToProps = dispatch => ({
getAudioForVerification: ()=>dispatch(getAudioForVerification),
audioVerificationResult: (audioId,verificationResult)=>dispatch(audioVerificationResult(audioId,verificationResult))
});

Q1 : Если я удалю отправку из моей Второй функции: audioVerificationResult, я получаю сообщение об ошибке

Действия должны быть простыми объектами. Используйте собственное промежуточное ПО для асинхронных c действий.

Почему такая ошибка не появляется и для первой функции?

Q2: первая функция возвращает обещание (I можно использовать .then в моем MainComponent после вызова этой функции), а второй - нет. Почему?

Я начал изучать Promises, Redux и Thunk (веб-разработчика в целом) совсем недавно. Если вопросы слишком общие, пожалуйста, направьте меня к источнику обучения.

Спасибо за ваше время.

1 Ответ

0 голосов
/ 11 июля 2020

Функции в вашем ActionCreator.js не совсем создатели действий , поскольку они не возвращают plain object, как предлагает redux docs . Это всего лишь js функции.

Вам не нужно dispatch, если вы используете .then() в своем компоненте и читаете results/data. dispatch помогает вам только с обновлениями redux store.

Надеюсь, этот ответ поможет вам лучше понять подробные сведения о промежуточном программном обеспечении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...