Umi和Dva数据流如何使用(Typescript)

Umi和Dva数据流如何使用

model.ts

/*
 * @Descripttion: 
 * @Author: mikasa
 * @Date: 2020-11-29 11:29:43
 */
import {Reducer,Effect,Subscription} from 'umi'
import { getRemoteList } from './service'
interface UserModelType{//约束
    namespace:'users',
    state:{},
    reducers:{
        getList:Reducer
    },
    effects:{
        getRemote:Effect
    },
    subscriptions:{
		setup:Subscription
    }
}
const UserModel:UserModelType = {
    namespace:'users',//命名空间
    state:{},//初始值
    reducers:{//同步
        getList(state,{payload}){
            return payload
        }
    },
    effects:{//异步
        *getRemote({payload},{put,call}){
            const data = yield call(getRemoteList)
            yield put({
                type:'getList',
                payload:data
            })
        }
    },
    subscriptions:{//订阅
    	setup({dispatch,history},done){
            history.listen((location,action)=>{
                if(location.pathname === '/users'){
                    dispatch({
                        type:'getRemote'
                    })         
                }
            })
        }
	}
}
export default UserModel

service.ts

import { request } from 'umi'
export const getRemoteList = async params =>{
    return request('http://public-api-v1.aspirantzhang.com/users',{
        method:'get',
        params:{page:1}
    }).then(res=>{
        return res;
    }).catch(err=>{
    })
}

index.tsc

function index({users}) {
    return (
        <div className='list-table'>
            <Table columns={columns} dataSource={users.data}/>
        </div>
    )
}
const mapStateToProps = ({users}) =>{
    return{
        users
    }
}
export default connect(mapStateToProps)(index)
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

上天注定的姻缘最大嘛!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值