首页 > 其他分享 >Ant Design Pro 使用model

Ant Design Pro 使用model

时间:2023-02-25 17:56:06浏览次数:32  
标签:name Pro Ant state Design key address import model

引入 DVA

export default {
  plugins: [
    ['umi-plugin-react', {
      antd: true,
      dva: true,
    }],
  ],
  // ...
}

 

新建src/models/register.js

export default {
  namespace: 'register',

  state: [
    {
      key: '1',
      name: 'John Brown111',
      age: 32,
      address: 'New York No. 1 Lake Park',
    },
    {
      key: '2',
      name: 'Jim Green',
      age: 42,
      address: 'London No. 1 Lake Park',
    },
    {
      key: '3',
      name: 'Joe Black',
      age: 32,
      address: 'Sidney No. 1 Lake Park',
    },
  ],
};
  • namespace 来作为一个 model 的唯一标识,state 中就是该 model 管理的数据。

 

src/pages/Request.js

import { register } from '@/services/ant-design-pro/register';
import { Button } from 'antd';
import { Divider, List, Typography } from 'antd';
import { Card } from 'antd';
import { Space, Table, Tag } from 'antd';
import React from 'react';
import { render } from 'react-dom';
import { connect } from 'dva';

const namespace = 'register';

const mapStateToProps = (state) => {
  const userList = state[namespace];
  return {
    userList,
  };
};

const columns = [
  {
    title: 'Name',
    dataIndex: 'name',
    key: 'name',
    render: (text) => <a>{text}</a>,
  },
  {
    title: 'Age',
    dataIndex: 'age',
    key: 'age',
  },
  {
    title: 'Address',
    dataIndex: 'address',
    key: 'address',
  },

  {
    title: 'Action',
    key: 'action',
    render: (_, record) => (
      <Space size="middle">
        <a>Invite {record.name}</a>
        <a>Delete</a>
      </Space>
    ),
  },
];

@connect(mapStateToProps)
class ShoppingList extends React.Component {
  render() {
    return (
      <>
        <Card>
          <Button type="primary" onClick={register}>
            注册
          </Button>
        </Card>

        <Table columns={columns} dataSource={this.props.userList} />
      </>
    );
  }
}

export default ShoppingList;
  • connect 让组件获取到两样东西:1. model 中的数据;2. 驱动 model 改变的方法。
  • connect 既然是函数,就可以接受入参,第一个入参是最常用的,它需要是一个函数,我们习惯给它命名叫做 mapStateToProps,顾名思义就是把 dva model 中的 state 通过组件的 props 注入给组件。通过实现这个函数,我们就能实现把 dva model 的 state 注入给组件。

标签:name,Pro,Ant,state,Design,key,address,import,model
From: https://www.cnblogs.com/QingshanY/p/17154908.html

相关文章

  • Ant Design Pro 新建页面
    新建src/pages/Request.jsimportReactfrom'react';exportdefault()=>{return(<div>临时用</div>);} 修改config/routes.jspath:路径compone......
  • Ant Design Pro 安装
    使用npm安装cnpmnpminstall-gcnpm--registry=https://registry.npm.taobao.org 安装yarncnpminstall-gyarn 安装Umicnpminstall-gumi 安装项......
  • 如何修改Cognex VisionPro中Blob斑点的边界颜色
    截取项目中的一段代码说明:stringstr="";intCount=0;for(inti=0;i<ParticleCount;i++){doubleCoM_X=particleblob.Re......
  • Android笔记--FileProvider
    FileProvider介绍继承于ContentProvider,本质上依旧是用于跨境通信,对第三方应用暴露文件,并授予文件读写地权限具体内容1、在Strings.xml里面配置一个常量2、在Manifest......
  • What's past is prologue
        凡是过去,皆为序章。爱所有人,信任少数人,不负任何人。我荒废了时间,时间便把我荒废了。 在灰暗的日子中,不要让冷酷的命运窃喜;命运既然来凌辱我们,就应该用处之泰......
  • 使用docker-compose快速部署Prometheus+grafana环境
    由于最近公司服务频繁出问题,老板很生气,下面的人都很不好过,于是老大让加一下业务监控,来观察线上数据状态。但是由于qa环境数据量太少,所以自己搭建了一套环境做相关监控,并且......
  • 性能测试-grafana + prometheus + node_exporter
    1、grafana安装下载网址:https://grafana.com/grafana/download/7.4.3?platform=linux#下载wgethttps://dl.grafana.com/enterprise/release/grafana-enterprise-7.4.3......
  • Docker 启动报:Job for docker.service failed because the control process exited wi
    方法:1、在/etc/docker/daemon.json路径下添加代码。没有这个文件的可以手动添加touch/etc/docker/daemon.json在里面添加代码:{"storage-driver":"devicemapper"}......
  • 最易懂的Prometheus告警原理详解
    通俗易懂的一篇文章,主要介绍了Prometheus什么时候告警,什么时候不会告警。同时介绍了Prometheus告警原理。 警报是监控系统中必不可少的一块,当然了,也是最难......
  • Mysql、(六) Show Profile
    @目录一、ShowProfile简介二、分析步骤1.开启功能2.ShowProfile查看执行情况3.诊断具体的SQL语句三、日常开发需要注意的结论一、ShowProfile简介ShowProfile是......