Ant Design Pro 路由传值

了解Ant Design Pro组件间通讯原理的小伙伴肯定都知道,两个页面之间可以通过Models进行传值,在以往的传值过程中,我都是直接将需要的值直接一股脑的传给两一个界面:

  // 修改影像
handelUpdate = obj => {
const { dispatch } = this.props;
dispatch({
type: 'video/editDetail',
payload: {
id: obj.id,
title: obj.title,
des: obj.des,
image: obj.image,
video: obj.video,
attachment: obj.attachment,
},
});
};

这是数据展示列表点击查看某一项详情时所作的操作,可以看到,当数据流非常庞大时,这种写法可以说非常小白了。缺点是需要当前页面存储了这么多值,才能直接传到另一个界面,然而展示的时候可能不会需要这么多值,这就造成了内存的浪费,性能就会降低。

后来接触了另一种方法:通过路由传当前项的id,在详情页面调用查看详情的接口,虽然这样需要后端多写一个接口,但性能会提升许多。

1、先配置路由:

          {
path: '/cinema/arrangeMovieManagement/arrangeDetail/:arrangeId',
name: 'arrangeDetail',
component: './cinema/ArrangeMovieManagement/ArrangeDetail',
hideInMenu: true,
},

可以看到,在路由后面我加上了arrangeId

2、路由传值

  viewDetail = obj => {
this.props.dispatch(
routerRedux.push({
pathname: `/cinema/arrangeMovieManagement/arrangeDetail/${obj.arrangeId}`,
})
);
};

这里直接将选中的ID传给路由

3、详情页面数据加载

  componentDidMount() {
const {
dispatch,
match: {
params: { arrangeId },
},
} = this.props;
dispatch({
type: 'arrangeMovie/apiArrangeMovieDetail',
payload: { arrangeId },
});
}

可以看到,在该页面的componentDidMount的时候调用一下接口,用

match: {
params: { arrangeId },
},

的方法取出路由中的参数,然后调用一下接口即可。

最新文章

  1. 用JavaScript调用WCF Service
  2. Asp.net Mvc Entity Framework Code First 数据库迁移
  3. ssi项目(1)环境搭建
  4. 帕雷托最优(Pareto optimality)、帕雷托效率(Pareto efficiency)
  5. 基于淘宝开源Tair分布式KV存储引擎的整合部署
  6. 将java的class文件放到一个指定文件夹下
  7. C# 从数据库中删除,插入,修改 索引选中条目
  8. HDU 1869 六度分离【floyd】
  9. WIN32不得不会:视频播放器
  10. sql脚本的格式
  11. SQL Server索引进阶:第五级,包含列
  12. 怎样成为一个游戏制作人——第五章:使用GGE图形库来写游戏
  13. 基于Spring DM管理的Bundle获取Spring上下文对象及指定Bean对象
  14. React 读书笔记
  15. .net 添加api不能访问的问题
  16. centos 安装解压工作
  17. python 全栈开发,Day64(视图,触发器,函数,存储过程,事务)
  18. github上删除一个项目或者reposity
  19. Nodejs this详解
  20. bzoj千题计划205:bzoj3529: [Sdoi2014]数表

热门文章

  1. Uniapp使用iconfont
  2. SuperSocket通过 SessionID 获取 Session
  3. 谷歌浏览器中kindeditor编译器字体不能为微软雅黑的问题?
  4. TensorFlow指定使用GPU 多块gpu
  5. HDU 5971"Wrestling Match"(二分图染色)
  6. [转]Redis和Memcache区别,优缺点对比
  7. 人脸检测MTCNN的训练过程(PRO网络)
  8. CF161BDiscounts
  9. SpringSecurity 自定义用户 角色 资源权限控制
  10. vue-learning:20 - js - 区别:filters / data / computed / watch / methods