千家信息网

如何通过props获取rule里的reducers产生的data

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,如何通过props获取rule里的reducers产生的data,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。因为最近在写ant-des
千家信息网最后更新 2026年11月03日如何通过props获取rule里的reducers产生的data

如何通过props获取rule里的reducers产生的data,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。


因为最近在写ant-design其中数据流向老是记不住,所以记个笔记,因为我比较菜,有错误的地方欢迎大佬们指出。

@connect(({rule, loading}) => ({    rule,//对应的namespace    loading: loading.models.rule,}))export default class demo extends React.Component {    constructor(props) {        super(props);    }   ....一堆代码    }

通过connect修饰之后的类就可以通过this.props获取里面的值了。

这个时候我们可以获取dispatch对象了

const { dispatch } = this.props;

然后dispatch使用方法如下

dispatch({  type: 'rule/fetch',  params: {url: fullUrl},});

参数type的格式是model文件对应的namespace 然后是对应的方法名。

params是我们请求的参数。

接下来看model文件的东西

export default {    namespace: 'rule',    state: {       //在这里面写state    },    effects: {        *fetch({params, callback}, {call, put}) {            const response = yield call(getPage, params);            yield put({                type: 'save',                params: response,            });            if (callback) callback();        },
},
reducers: { save(state, action) { return { ...state, data: action.params.data, }; }, },};

根据dispatch的参数我们找到对应的namespace:rule

*fetch:是一个异步函数,async fetch 的简写。接下来里面两个参数

params就是我们上面dispatch的第二个参数,call是用于调用request对应的方法的。put是将结果,传到下面的reducers里。

我们说下这几个参数怎么用

在看params怎么用之前我们看下getPage是怎么写的

import {request} from 'umi';import {stringify} from 'qs';export async function getPage(params) {    return request(`http://localhost:6200/?${stringify(params)}`)}

得知params是getPage的参数,然后使用request做了一个请求。外面我们获取到了response。

然后回到effects,put是把结果推送到reducers,参数type要求和reducers的函数名一致。

接下来是reducers,然后是它的两个参数state和action。state就是我们全局的state,我们在return的时候会重新加载state,

通过action.params可以获取response,然后可以进一步获取其其他属性,比如又进行了一步获取获取数据其data属性。

这个地方要重点提示一下:请求的时候一定要注意跨域的问题,ant-desin有解决的跨域的方法不说了,或者我们可以修改服务端。如果使用flask作为服务端,可以这样

from flask_cors import *from lxml import etree
app = Flask(__name__)CORS(app, supports_credentials=True)

然后这个时候页面就会重新render

    render() {        const source = this.props.rule.data;        return (                         //一堆组件信息                        )}

我们在代码里就可以通过props获取rule里的reducers产生的data了。

看完上述内容,你们掌握如何通过props获取rule里的reducers产生的data的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

参数 方法 时候 问题 接下来 两个 代码 内容 函数 可以通过 地方 就是 属性 数据 文件 更多 结果 服务 一致 束手无策 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广州大一互联网络科技有限公司 关于新基建和互联网科技 远信互联网科技 互联网科技媒体 互联网科技ppt模板 蓝色互联网科技 隆华科技工业互联网 济南华为互联网科技产业总部基地 金融科技与互联网金融相同和不同 全球顶尖互联网科技公司 受益于互联网科技的高速发展 中国航天科技大学国际工业互联网 阿大互联网科技有限公司 呼和浩特新华互联网科技学院 深圳育鹏互联网科技有限公司招聘 本届互联网博览会上的黑科技 深圳无忧互联网科技 中国新注册互联网科技 科技互联网专业务虚会材料 银川新华互联网科技学校招聘 北京路客互联网科技有限公司 互联网科技官网 卓越科技(互联网 ) 互联网科技上市公司 深圳国际航运科技和互联网 移动互联网年度科技创新 民营互联网公司国防科技 乌鲁木齐新华智原互联网科技学校 江苏苏星互联网科技有限公司 从那以后互联网科技有限公司
0