dva中使用effects调用reducers修改state数据

编程入门 行业动态 更新时间:2024-10-05 21:19:24

dva中使用effects调用reducers修改state<a href=https://www.elefans.com/category/jswz/34/1771445.html style=数据"/>

dva中使用effects调用reducers修改state数据

   我们修改state中的数据的时候需要通过reducers的的方法进行修改,所以当我们effects函数想去修改state中的数值的时候,需要利用put方法调用reducers函数来进行修改。put函数的使用方法和dispatch类似,put({type:'调用的reducers函数名字',额外参数}),我们一起接者做一个小小的例子,我们把将昨天文章获取后端的数据传递给state

import { getAllUsers } from "../api";
export default {state: [],reducers: {setUsers(state, { users }) {return users;},},effects: {*fetchAllUsers(action, { call, put }) {var res = yield call(getAllUsers);}},};

我们昨天做到这一步,定义了state以及reducers方法和获取到后端的数据并存储到res中,当正常获取的时候,res.status的数值为200,正常获取数据时res.data.code的数值为200,所以我们可以当他们的数值都为200的时候把数值赋值给state,通过put方法进行调用reducers进行修改,值得注意的是,昨天强调当我们的使用call/put等方法的时候要记得用yield进行修饰

import { getAllUsers } from "../api";
export default {state: [],reducers: {setUsers(state, { users }) {return users;},},effects: {*fetchAllUsers(action, { call, put }) {var res = yield call(getAllUsers);console.log(res);if(res.status===200){if(res.data.code==200){yield put({type:'setUsers',users:res.data.data});}}},},
};

更多推荐

dva中使用effects调用reducers修改state数据

本文发布于:2024-02-07 08:15:34,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1755215.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:数据   effects   dva   state   reducers

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!