redux数据操作

action,reducer,store与页面之间的数据传递

action代码:

import axios from"axios";
const url="http://localhost:3000/users";
export const GET_POSTS="GET_POSTS"
export function getPost(){		
		let request=axios.get(url)
				return{
					type:GET_POSTS,
					payload:request
				}

		}

reducer代码:
rootReducer组件



import { combineReducers } from 'redux'
import {GET_POSTS} from "../actions/index";
const defaultState = {
	posts:[]
}
 function posts (state = defaultState, action) {
    switch (action.type) {
        case GET_POSTS:
            return {
            	posts:action.payload.data
            }
        default:
            return state;
    }
}
const rootReducer=combineReducers({
    posts:posts
});
export default rootReducer

store代码:

import { createStore,applyMiddleware } from 'redux'
import rootReducer from '../reducers'
import ReduxPromise from "redux-promise"
const creatStoreWidthMiddleware=applyMiddleware(ReduxPromise)(createStore);
export default function configureStore(initialState) {
    const store = creatStoreWidthMiddleware(rootReducer,initialState)
    return store 
}

dome代码:

import React from "react";
import {connect} from "react-redux";
import {getPost} from "../actions/index"
 class Dome5 extends React.Component{
	constructor(props){
		super(props);
	}
	componentWillMount(){
		this.props.getPost();
	}
	render(){	
		console.log(this.props.postList)	
		return(
			<div>
			    {this.props.postList.map((post,index)=>{
			    	return(
			    	<div key={index}>
			    	<span>姓名:{post.firstName}</span>
			    	<span>年龄:{post.age}</span>
			    	</div>
			    	)
			    })}
			</div>
		)
	}	
}
function mapStateToProps(store){
	return{
		postList:store.posts.posts
	}
}
export default connect(mapStateToProps,{getPost})(Dome5)

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值