項目隨筆2


College


內容框架

mapStateToProps裏返回的數據, 是從CollegeRedux中reducer返回的新的state中獲取的


mapStateToProps(state) {
  return {
    article: state.CollegeReducer.article   //state後面要跟reducer名
    }
}
mapDispatchToProps(dispatch) {
return {
    action: bindActionCreators(actions, dispatch)  //這裏面的actions是在College頂部獲取的     import { actions } from 'CollegeRedux';
    }
}

路徑跳轉

若是是內部路徑,能夠用browserHistory.push('/college/basic');
    若是是外部路徑,能夠用window.location.href = 'http://www.baidu.com'; 不能夠用browserHistory.push
剛加載的時候頁面無內容的地方背景爲黑色,應該設置全局樣式
    .wrapper {
        width: 100%;
        height: 100%;
        position: absolute;    //不設置定位,不起做用
    }

CollegeRedux:

action的定義中請求數據
    function getArticle() {
        return (dispatch) => {
            axios({
            method: 'post',
            ...,
            onSuccess: (res) => {
                dispatch({
                    type: 'ARTICLE',
                    data: res.list    //根據後臺給的接口
                })
            }
        })
        }
    }
輸出reducer
    export default function CollegeReducer( state=initState, action ) {
        switch(action.type) {
            case 'ARTICLE': 
                return Object.assign({}, state, { article: action.data });
        }
    }
輸出總的 actions
export const actions = {                //注意不是這裏用bindActionCreators
    getArticle,
    ...
}

多個頁面可使用同一個CollegeRedux文件,不用從新寫一個redux文件
相關文章
相關標籤/搜索