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>
        )
    }

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM