Antd Pro学习中遇到connect中的疑惑

Connect传递Model中的数据给router

比如model中定义的login.js 定义了state数据,那么在router组件中怎么获取到这个数据呢?

通过connect可以传递过来,然后通过this.props就可以访问了,同样也会将dispatch(可以发送请求到model去),history方法传递过来,这样就可以通过组件传递moel保存的值了。

方法一:

复制代码
import React from "react";
import {Component} from 'react';
import { connect } from "umi"; //从umi中导入connect
 
class LoginForm extends Component {
    constructor(props){
        super(props)
    }  
    render (){
        return (
            <div>
                 <p> this.props.login.status</p> //如这里就获取到了model中定义的status数据了
            </div>
        )
    }
}
const mapStateToProps = (state) =>{
    return {
        login:state.login, //这里的example表示后面用this.props.login获取state(根节点)中login命名空间(model的login.js中的state所有数据)的数据
    }
}
export default connect (mapStateToProps)(LoginForm) //通过这种方式来把model层的数据传递到当前组件了
复制代码

方法二:

复制代码
import React from "react";
import {Component} from 'react';
import { connect } from "umi"; //从umi中导入connect
 
class LoginForm extends Component {
    constructor(props){
        super(props)
    }  
    render (){
        return (
            <div>
                 <p> this.props.login.status</p> //如这里就获取到了model中定义的status数据了
            </div>
        )
    }
}

export default connect ({login})(LoginForm) //通过这种方式来把model层的数据传递到当前组件了
复制代码

方法三:

采用Es6注解的方式

复制代码
import React from "react";
import {Component} from 'react';
import { connect } from "umi"; //从umi中导入connect
 
@connect({login})
class LoginForm extends Component {
    constructor(props){
        super(props)
    }  
    render (){
        return (
            <div>
                 <p> this.props.login.status</p> //如这里就获取到了model中定义的status数据了
            </div>
        )
    }
复制代码

以上寫法參考了網友的寫法 謝謝!給我 了啓發。

posted @   雪莉06  阅读(1190)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
历史上的今天:
2019-08-13 Axure 文本框去掉边框 富文本 粘贴文字图标
2019-08-13 Axure 文本框去掉边框 富文本 粘贴文字图标
点击右上角即可分享
微信分享提示