redux & dispatch & payload

react & react-redux & redux-saga


// contrast
dispatch({
type: "pointCheckDetail/getContrastData",
payload: {
id,
},
});
// status
dispatch({
type: "pointCheckDetail/getPointCheckResults",
payload: {},
});
// table
dispatch({
type: "pointCheckDetail/getPointCheckDetails",
payload: {
id,
contrasts,
},
});

effects: {
*initData({ payload }, { put }) {
yield put({
type: "save",
payload: {
...initialState,
...payload,
}
});
},
*getBasicData({ payload }, { put, call }) {
yield put({
type: "showLoading",
});
const {
id,
} = payload;
const res = yield call(getPointCheckBasics, id);
if (res.success) {
yield put({
type: "save",
payload: {
loading: false,
// dataSource: res.data,
},
});
} else {
yield put({
type: "hiddenLoading",
});
message.error(`获取数据失败!`);
}
},
*getContrastData({ payload }, { put, call }) {
yield put({
type: "showLoading",
});
const {
id,
} = payload;
const res = yield call(getPointCheckContrasts, id);
if (res.success) {
yield put({
type: "save",
payload: {
loading: false,
// contrast: contrastShaper(res.data),
contrast: contrastShaper([]),
},
});
} else {
yield put({
type: "hiddenLoading",
});
message.error(`获取数据失败!`);
}
},
*getResultData({}, { put, call }) {
yield put({
type: "showLoading",
});
const res = yield call(getPointCheckResults, );
if (res.success) {
yield put({
type: "save",
payload: {
loading: false,
// dataSource: res.data,
},
});
} else {
yield put({
type: "hiddenLoading",
});
message.error(`获取数据失败!`);
}
},
*updateReportName({ payload }, { put, call }) {
yield put({
type: "showLoading",
});
// const {
// id,
// name,
// } = payload;
const res = yield call(putPointCheckReportName, payload);
if (res.success) {
yield put({
type: "save",
payload: {
loading: false,
// dataSource: res.data,
},
});
} else {
yield put({
type: "hiddenLoading",
});
message.error(`获取数据失败!`);
}
},
*getTableData({ payload }, { put, call }) {
yield put({
type: "showLoading",
});
// const {
// id,
// contrasts,
// } = payload;
const res = yield call(getPointCheckDetails, payload);
if (res.success) {
yield put({
type: "save",
payload: {
loading: false,
// dataSource: res.data,
},
});
} else {
yield put({
type: "hiddenLoading",
});
message.error(`获取数据失败!`);
}
},
},

refs

https://zzk.cnblogs.com/my/s/blogpost-p?Keywords=redux-saga



xgqfrms 2012-2020

www.cnblogs.com 发布文章使用:只允许注册用户才可以访问!


redux & dispatch & payload的更多相关文章

  1. 3.4 redux 异步

    在大多数的前端业务场景中,需要和后端产生异步交互,在本节中,将详细讲解 redux 中的异步方案以及一些异步第三方组件,内容有: redux 异步流 redux-thunk redux-promise ...

  2. redux-simple 简化版的redux

    作为react的粉丝,当然要吐槽一下react组件通信问题.react的单向数据流是组件通信的一大阻碍,只允许父组件向子组件传值,子组件向父组件传值只能通过父组件向子组件传递回调函数实现.如果在深层次 ...

  3. Redux API之bindActionCreators

    bindActionCreators(actionCreators,dispatch) 把 action creators 转成拥有同名 keys 的对象,但使用 dispatch 把每个 actio ...

  4. 理解 Redux 的中间件

    将该思想抽象出来,其实和 Redux 就无关了.问题变成,怎样实现在截获函数的执行,以在其执行前后添加自己的逻辑. 为了演示,我们准备如下的示例代码来模拟 Redux dispatch action ...

  5. 手把手教你撸一套Redux(Redux源码解读)

    Redux 版本:3.7.2 Redux 是 JavaScript 状态容器,提供可预测化的状态管理. 说白了Redux就是一个数据存储工具,所以数据基础模型有get方法,set方法以及数据改变后通知 ...

  6. 探索从 MVC 到 MVVM + Flux 架构模式的转变

    本文首发于 my blog 在业务中一般 MVVM 框架一般都会配合上数据状态库(redux, mobx 等)一起使用,本文会通过一个小 demo 来讲述为什么会引人数据状态库. 从 MVC 到 MV ...

  7. React: 研究Flux设计模式

    一.简介 一般来说,State管理在React中是一种最常用的实现机制,使用这种state管理系统基本可以开发各种需求的应用程序.然而,随着应用程序规模的不断扩张,原有的这种State管理系统就会暴露 ...

  8. 手写Redux-Saga源码

    上一篇文章我们分析了Redux-Thunk的源码,可以看到他的代码非常简单,只是让dispatch可以处理函数类型的action,其作者也承认对于复杂场景,Redux-Thunk并不适用,还推荐了Re ...

  9. dva的effect那么难用,自己造一个轮子吧

    背景 对于dva这个开发框架,国内从事react的前端工程师多半不会感到陌生,dva完善的开发体系和简单的api,让其被广泛运用到实际工作中.我所在的公司也是长期使用dva作为基础的开发框架,虽然好用 ...

随机推荐

  1. spring restTemplate 进行http请求的工具类封装

    本文为博主原创,未经允许不得转载: 1.对常用调用的方法进行封装: import org.springframework.http.HttpHeaders; import com.alibaba.fa ...

  2. I/O 复用 multiplexing data race 同步 coroutine 协程

    小结: 1.A file descriptor is considered ready if it is possible to perform the corresponding I/O opera ...

  3. http 和 https 有何区别?如何灵活使用?

    http是HTTP协议运行在TCP之上.所有传输的内容都是明文,客户端和服务器端都无法验证对方的身份. https是HTTP运行在SSL/TLS之上,SSL/TLS运行在TCP之上.所有传输的内容都经 ...

  4. 剖析 CopyOnWriteArrayList

    原文链接:https://www.changxuan.top/?p=1252 CopyOnWriteArrayList 是 JUC 中唯一一个支持并发的 List. CopyOnWriteArrayL ...

  5. Java根据路径获取文件内容

    文章目录 一.思路 二.实现 给出一个资源路径.然后获取资源文件信息,常见三种方式:①网络地址 ②本地绝对路径 ③本地相对路径 一.思路 首先,给出一个string表示资源文件的标识,如何判断是网络中 ...

  6. #define typedef 区别

    1) #define是预处理指令,在编译预处理时进行简单的替换,不作正确性检查,不关含义是否正确照样带入,只有在编译已被展开的源程序时才会发现可能的错误并报错.例如: #define PI 3.141 ...

  7. .Net微服务实战之必须得面对的分布式问题

    系列文章 .Net微服务实战之技术选型篇 .Net微服务实战之技术架构分层篇 .Net微服务实战之DevOps篇 .Net微服务实战之负载均衡(上) .Net微服务实战之CI/CD .Net微服务实战 ...

  8. Git实践笔记(一)

    Git是什么 Git是目前世界上最先进的分布式版本控制系统. 工作原理 / 流程: Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remo ...

  9. 给jekyll博客添加天气插件

    layout: post title: 给博客添加天气插件 date: 2020-04-26 author: Dapenson header-img: img/post-bg-debug.png ca ...

  10. CF 1244 C - The Football Season

    C - The Football Season 先考虑求解 \[ x\times w + y\times d=p \] 若存在一组解 \[ \begin{cases} x_0\\ y_0 = kw + ...