亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

redux中fetch的使用

redux中fetch的使用

繁星coding 2019-04-09 17:19:46
看到一個項目中引入的是 import fetch from 'isomorphic-fetch';然后在定義action—type時,寫的:export const FETCH_RUNS = 'FETCH_RUNS';export const FETCH_RUNS_PENDING = 'FETCH_RUNS_PENDING';export const FETCH_RUNS_FULFILLED = 'FETCH_RUNS_FULFILLED';export const FETCH_RUNS_REJECTED = 'FETCH_RUNS_REJECTED';加了三種狀態pending,fulfilled,rejectedaction中只寫了type: FETCH_RUNS的:import {fetchRuns} from '../../services/RunService';const fetchRunsAction = (req) => ({  type: FETCH_RUNS,  payload: fetchRuns(req)});export {  fetchRunsAction as fetchRuns}而在reducer中對三種狀態的action都做了處理:import {  FETCH_RUNS_FULFILLED,  FETCH_RUNS_PENDING,  FETCH_RUNS_REJECTED} from '../actions/runActions';// INITIALIZE STATEconst initialState = {  runs: null,  fetched: false,  fetching: false,  failed: false};// REDUCERexport const FetchRunsReducer = (state = initialState, action) => {  switch (action.type) {    case FETCH_RUNS_PENDING:      return {        ...state,        fetching: true,        fetched: false,        failed: false      };    case FETCH_RUNS_FULFILLED:      return {        ...state,        runs: action.payload,        fetching: false,        fetched: true,        failed: false      };    case FETCH_RUNS_REJECTED:      return {        ...state,        runs: null,        fetching: false,        fetched: false,        failed: true      };    default:      return state;  }};在組件中:...const mapStateToProps = state => {  const {fetched, fetching, runs} = state.runs;  return {    fetched,    fetching,    runs  };};const mapDispatchToProps = dispatch => {  return bindActionCreators({fetchRuns}, dispatch);};現在我的疑惑點在——什么時候觸發了FETCH_RUNS_PENDING,FETCH_RUNS_FULFILLED,FETCH_RUNS_REJECTED這三個狀態;在promise是有三個狀態,自動觸發,但是程序如何跳到代碼中寫的這三個action名字FETCH_RUNS_PENDING,FETCH_RUNS_FULFILLED,FETCH_RUNS_REJECTED;我想是不是某個封裝的地方給action名字自動后面添加了PENDING、FULFILLED,REJECTED然后在觸發此action的時候后自動觸發這幾個狀態的action。那么請問在哪個里面進行了封裝呢?代碼中沒有找到啊,是不是react,redux某個里面封裝的?求助
查看完整描述

1 回答

?
倚天杖

TA貢獻1828條經驗 獲得超3個贊

你少最重要的一部分,就是處理 action 那部分
現在我的疑惑點在——什么時候觸發了FETCH_RUNS_PENDING,FETCH_RUNS_FULFILLED,FETCH_RUNS_REJECTED這三個狀態;在promise是有三個狀態,自動觸發,
手動觸發或者自己寫個工具觸發總之不會自動觸發,

但是程序如何跳到代碼中寫的這三個action名字
你在找著代碼 看最終 action 被那個組件使用了

FETCH_RUNS_PENDING,FETCH_RUNS_FULFILLED,FETCH_RUNS_REJECTED;我想是不是某個封裝的地方給action名字自動后面添加了PENDING、FULFILLED,REJECTED然后在觸發此action的時候后自動觸發這幾個狀態的action。那么請問在哪個里面進行了封裝呢?代碼中沒有找到啊,是不是react,redux某個里面封裝的?求助

可以這樣做 但是很明顯這個不是這樣做的


查看完整回答
反對 回復 2019-05-19
  • 1 回答
  • 0 關注
  • 834 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號