dva , umi

// 样式组件
import styled from 'styled-components';
const WrapperCard = styled(Card)`
  background: #fff;
  padding: 24px;
  .ant-form-item {
    margin-bottom: 0px;
  }
  .ant-calendar-picker{
    width:100%
  }
`;


const Placeholder = styled.span`
visibility: hidden;
`;
SearchPanel     是一个自定义组件,组件内具有form
wrappedComponentRef :这个属性里边的函数,第一个参数代表这个自定义组件里的所有form的this
当前页面
 <SearchPanel 
 	FormGroup={(this.state.activeKey==3||this.state.activeKey==4)?ItemMap2:ItemMap1} 
 	buttonProps={buttonProps}       
 	wrappedComponentRef={(form) => {return this.form = form}} />
//call 是请求,put里的type是调用下边reducers里的函数
//页面中
//使用时,从dva中引入connect,
import {connect} from 'dva';
//使用@装饰器
//this.props.login.loginInfo
@connect(({login})=>({login}))
//this.props.aaa.loginInfo
@connect(({login})=>({aaa:login}))
//通过@connect才能从this.props中拿到dispatch。

//和@connect 一样
export default connect(({ setting }) => ({
  contentWidth: setting.contentWidth,
}))(GridContent);


//请求中
export default {
  //命名空间
  namespace:'login',
  state: {
    status: undefined,
    loginInfo:{},
    loginAdmin:{
    },
  },
  // [ɪˈfekts] 效果
  //
	effects: {
	 *login({ payload }, { call, put }) {
      const response = yield call(login, payload);
      if (response.code === 200) {
        setToken(response.token)
        yield put({
          type: 'changeLoginStatus',
          payload: {
            currentAuthority: 'admin',
            status: 'ok',
            type: 'account',
          },
        });
      }
      return response;
    },
    *captchaImage({ payload }, { call}) {
      const response = yield call(captchaImage,payload);
      return response;
    },
    *Userinfo({ payload }, { call, put }) {
      const response = yield call(profile, payload);
      yield put({ 
      	type: 'changeLoginStatus',
      	payload: { 
      				action:'info',
      				loginInfo:response.data,
      				loginAdmin:response 
      			  }
      });
      return response;
  },
		//可以不写参数(payload),在请求里写
		*logout(_, { put }) {
			yield put({
			  type: 'changeLoginStatus',
			     payload: {
			       status: false,
			       currentAuthority: 'guest',
			     },
			})
		 }
	},
 reducers: {
   save(state,{payload}){
    return {
      ...state,
      ...payload
    };
  },
  
}


//路由传参
//路由后设置参数
{
   path: '/contract/edit/:id', // 合同修改
   icon: 'dashboard',
   // hideInMenu:true,
   component: './Contract/AddOrEdit',
},

//在按钮页面点击跳转
//从umi中引入router
import router from 'umi/router';
//router.push进行跳转,参数就放在路径中对应 路由 path 的位置
router.push(`/contract/edit/${record.contractId}`);

//在跳转完成的页面中取值
this.props.match.params.id

//Ant Design Pro v1.x 组件文档
//import Ellipsis from 'ant-design-pro/lib/Ellipsis';
//https://www.bookstack.cn/read/ant-design-v1.x-component/17d57989543bbb74.md
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值