takeLatest 如何接受 this.props.dispatch 传递的参数

1.步骤一

// 获取查询参数
getQueryParams(params){
  // 请求月考核分的数据
  this.props.dispatch({
    type:'getMonthlyAssessmentScoreData', // action.type api
    payload: params
  })
}

2.步骤二

// 月考核分
function* monthlyAssessmentScoreSaga(){
  /**
   * takeLatest
   * 对于触发多个action的时候,只执行最后一个,其他的会自动取消
   */
  yield takeLatest('getMonthlyAssessmentScoreData',(params) => getMonthlyAssessmentScoreList(params))
}

3.步骤三

// 月考核分 请求
import { getMonthlyAssessmentScorelist } from '../services/api';
/**
 * 声明时需要添加*,普通函数内部不能使用yield关键字,否则会出错
 * 获取用户列表数据
 */
function* getMonthlyAssessmentScoreList(params){
  const response = yield call(() => getMonthlyAssessmentScorelist(params)); // 返回值
  // put -- 触发某个action, 作用和dispatch相同
  yield put({ // 考核一览数据
    type:'currentMonthlyAssessmentScoreList', // 触发 同步 monthlyAssessmentScore --> currentMonthlyAssessmentScoreList
    payload:response.data, // 后台获取的数据
  })

  yield put({ // 加载动画
    type:'listload',
    payload:false,
  })
}

4.步骤四

// 月考核分
export async function getMonthlyAssessmentScorelist(param){
  console.log(param);
  return axios.get('http://localhost:8000/monthlyAssessmentScoreList').then(function(response){
    // 接收 json-server 的返回值
    return response.data;
  })
}

.

原文地址:https://www.cnblogs.com/crazycode2/p/9165667.html