繁星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';加了三種狀態(tài)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中對三種狀態(tài)的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);};現(xiàn)在我的疑惑點在——什么時候觸發(fā)了FETCH_RUNS_PENDING,F(xiàn)ETCH_RUNS_FULFILLED,F(xiàn)ETCH_RUNS_REJECTED這三個狀態(tài);在promise是有三個狀態(tài),自動觸發(fā),但是程序如何跳到代碼中寫的這三個action名字FETCH_RUNS_PENDING,F(xiàn)ETCH_RUNS_FULFILLED,F(xiàn)ETCH_RUNS_REJECTED;我想是不是某個封裝的地方給action名字自動后面添加了PENDING、FULFILLED,REJECTED然后在觸發(fā)此action的時候后自動觸發(fā)這幾個狀態(tài)的action。那么請問在哪個里面進行了封裝呢?代碼中沒有找到啊,是不是react,redux某個里面封裝的?求助
1 回答

倚天杖
TA貢獻1828條經(jīng)驗 獲得超3個贊
你少最重要的一部分,就是處理 action 那部分
現(xiàn)在我的疑惑點在——什么時候觸發(fā)了FETCH_RUNS_PENDING,F(xiàn)ETCH_RUNS_FULFILLED,F(xiàn)ETCH_RUNS_REJECTED這三個狀態(tài);在promise是有三個狀態(tài),自動觸發(fā),
手動觸發(fā)或者自己寫個工具觸發(fā)總之不會自動觸發(fā),
但是程序如何跳到代碼中寫的這三個action名字
你在找著代碼 看最終 action 被那個組件使用了
FETCH_RUNS_PENDING,F(xiàn)ETCH_RUNS_FULFILLED,F(xiàn)ETCH_RUNS_REJECTED;我想是不是某個封裝的地方給action名字自動后面添加了PENDING、FULFILLED,REJECTED然后在觸發(fā)此action的時候后自動觸發(fā)這幾個狀態(tài)的action。那么請問在哪個里面進行了封裝呢?代碼中沒有找到啊,是不是react,redux某個里面封裝的?求助
可以這樣做 但是很明顯這個不是這樣做的
添加回答
舉報
0/150
提交
取消