私はReduxのactionCreators内の状態にアクセスすることを念頭に置いています。代わりに次のことを行いました(減速機でajax操作を実行しました)。状態にアクセスする必要があるのはなぜですか?なぜなら、状態に格納されているCSRFトークンを使用してajaxを実行したいからです。Redux ReducerでAjaxフェッチを実行しますか?
誰かが次のことが悪い習慣/反パターンとみなされているかどうか教えてください。 Reduxのドキュメントから
export const reducer = (state = {} , action = {}) => {
case DELETE_COMMENT: {
// back-end ops
const formData = new FormData();
formData.append('csrf' , state.csrfToken);
fetch('/delete-comment/' + action.commentId , {
credentials:'include' ,
headers:new Headers({
'X-Requested-With':'XMLHttpRequest'
}) ,
method:'POST' ,
body:formData
})
// return new state
return {
...state ,
comments:state.comments.filter(comment => comment.id !== action.commentId)
};
}
default: {
return state;
}
}
はあなたが両方言ったことは多くの意味を行い、あなたの&@ WitVaultの明確化のためにありがとうございました。私はサンクで非同期アクションを達成しました。しかし、私が理解できないことは、どうやってapi呼び出し(フェッチ)を行うのですか?フェッチ時に、状態からPOSTバーにデータを追加しますか?例えば:CSRFトークン? – sammysaglam
@sammysaglamは更新された答えをチェックします。 2番目のパラメータは、基本状態オブジェクトを返す 'getState'関数です。 – Matthew
はうまくいった!素晴らしい!どうもありがとうございます!私は今これで良い一時間のためにこれを理解しようとしていました! – sammysaglam