dva框架构架下 可能出现的几种调用dispatch后不发送请求的情况及解决办法

这里我踩了三次坑 如果你发现你的dispatch没有发送请求只想改错误请直接看最下面对照看看自己有没有写错

原理分析

在dva架构下 调用dispatch主要经过三个步骤

下面index 代指 当前页

index(当前页) => model.index(model文件夹下的配置页) => services.index(services文件夹下的配置页)

其中从 index 文件夹 到 model.index 文件夹的路由 由 router.js中配置

下面由一个例子引出

//index.js
	dispatch({
		type: "index/save",
		payload: todo
	)};	
// model/index.js
	app.model({
	  namespace: 'todo',
	  state: [],
	  reducers: {
	    add(state, { payload: todo }) {
	      // 保存数据到 state
	      return [...state, todo];
	    },
	  },
	  effects: {
	    *save({ payload: todo }, { put, call }) {
	      // 调用 saveTodoToServer,成功后触发 `add` action 保存到 state
	      yield call(saveTodoToServer, todo);
	      yield put({ type: 'add', payload: todo });
	    },
	  },
	  },
	});
// services/index.js
	import {request} from util/request
	const saveTodoToServer = (data) => request(url,data);
	//url 为具体的请求路径
  1. 在services/index.js 中的url出现错误,这时候既会发送请求但是为404
  2. 在common/router中配置modal页的路径出现了错误,因为在加载modal和page对应关系时要用到router 如果此时对应关系已经出现了错误 那么page页的dispatch就无法在modal中找到争取的页 也就无法找到正确的type。
  3. page中的type路径为错误路径
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值