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. 【网络安全】IOC概念浅析

    OpenIOC(Open Indicator of Compromise,开放威胁指标) MANDIANT 公司发布的情报共享规范,是开源.灵活的框架.OpenIOC是一个记录.定义以及共享威胁情报的 ...

  2. es5和es6的区别

    ECMAScript5,即ES5,是ECMAScript的第五次修订,于2009年完成标准化ECMAScript6,即ES6,是ECMAScript的第六次修订,于2015年完成,也称ES2015ES ...

  3. 理解前端模块概念:CommonJs与ES6Module

    前言 现代前端开发每时每刻都和模块打交道.例如,在项目中引入一个插件,或者实现一个供全局使用组件的JS文件.这些都可以称为模块. 在设计程序结构时,不可能把所有代码都放在一起.更为友好的组织方式时按照 ...

  4. loj10103电力

    题目描述 原题来自:CTU Open 2004 求一个图删除一个点之后,联通块最多有多少. 输入格式 多组数据.第一行两个整数 P,C  表示点数和边数.接下来 C 行每行两个整数 ,表示 P1 与 ...

  5. LOJ10076

    USACO 2006 Nov. Gold 贝茜把家搬到了一个小农场,但她常常回到 FJ 的农场去拜访她的朋友.贝茜很喜欢路边的风景,不想那么快地结束她的旅途,于是她每次回农场,都会选择第二短的路径,而 ...

  6. 一次SQL盲注记录

    背景:遇到一个sql注入,数字型布尔盲注+waf(直接超时那种),只要能出用户名,数据库名即可. 解决办法: 因为可以只要能出user(),database()即可,所以用不着SELECT,那么问题就 ...

  7. 写给小白的 Nginx 文章

    原文地址:Nginx concepts I wish I knew years ago 原文作者:Aemie Jariwala(已授权) 译者 & 校正:HelloGitHub-小鱼干 &am ...

  8. scala中List、Array、ListBuffer、ArrayList、Set

    scala中List.Array.ListBuffer.ArrayList.Set 一.List 二.Array 三.LIstBuffer 四.ArrayBuffer 五.Set 一.List Lis ...

  9. Spark剖析-宽依赖与窄依赖、基于yarn的两种提交模式、sparkcontext原理剖析

    Spark剖析-宽依赖与窄依赖.基于yarn的两种提交模式.sparkcontext原理剖析 一.宽依赖与窄依赖 二.基于yarn的两种提交模式深度剖析 2.1 Standalne-client 2. ...

  10. ThreadLocal全面解析,一篇带你入门

    ===================== 大厂面试题: 1.Java中的引用类型有哪几种? 2.每种引用类型的特点是什么? 3.每种引用类型的应用场景是什么? 4.ThreadLocal你了解吗 5 ...