码迷,mamicode.com
首页 > 其他好文 > 详细

UMI学习-10 Dva 与后台数据交互

时间:2020-02-02 21:50:02      阅读:287      评论:0      收藏:0      [点我收藏+]

标签:put   into   zha   update   png   读取   ice   pre   交互   

 明天在线办公没时间学习了,今天晚上再更新一篇

代码提交一次:https://github.com/zhaogaojian/jgdemo

1、src下创建services目录

创建文件userSrv.ts

export async function query(): Promise<any> {
    return request(‘user/getuserinfo‘);
  }

import axios from "axios"
export default async function request (options) {
    let response
    try {
        response = await axios(options)
        return response
    } catch (err) {
        return response
    }
}

注意如果未安装axios,请安装axios

yarn add axios

技术图片

 

 

 3、User.tsx增加一个按钮

<Button type="primary" style={{marginTop:10,width:300}} onClick={this.handleReadFromSrvClick}>从服务端读取</Button>

技术图片

 

 

 4、事件,不需要传参数的话,payload可以不填内容

 handleReadFromSrvClick = e => {
    this.props.dispatch({
      type:"User/getUserInfo",
      payload:null
    })
    console.log(‘click: ‘, e);
  };

5、models目录下的 user.ts中增加如下代码

import {  query as queryUser } from ‘@/services/userSrv‘;

注意:下面effects不需要再使用queryUser.query

 effects:
    {
        *getUserInfo(_, { call, put }) {
            const response = yield call(queryUser);
            //yield console.log(response.data);
            yield put({
              type: ‘User/updateUserState‘,
              payload: response.data,
            });
          }
        
    }

技术图片

 

 

 6、mock 增加user.ts

export default {
    ‘/user/getuserinfo‘: {UserInfo:{
        username:"李四"
    }}
  };
  

7、运行效果

技术图片

 

 点击从服务端读取,姓名变成了李四,达到预期效果

技术图片

 8、不分层与后台数据交互方法请参考

https://www.cnblogs.com/zhaogaojian/p/12238299.html

UMI学习-10 Dva 与后台数据交互

标签:put   into   zha   update   png   读取   ice   pre   交互   

原文地址:https://www.cnblogs.com/zhaogaojian/p/12253708.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!