antd记录
如果table分页最后一页只有一条数据,删除这条会导致分页和数据展示不一致
原因:如果需求要求记录当前table页,删除之后没有判断当前页是否还有数据,所以判断如果当前页只有一条&&当前页大于1,则重新请求时页数-1
1 | onDeleteItem: id => { |
接口返回的数据填充Form
,有时会无法填充
原因:接口返回比页面渲染慢,导致页面渲染完成还没有拿到数据
解决:保证接口返回数据再渲染页面
1 | //如果用了状态管理 |
应该有更好的解决方案,这种如果加载时间长会白屏很长时间,等有好的解决思路再补充。。。
找到了,就是官方方法,在form标签上添加
fields={fields}
属性,缺点是其中的fields
值不是对象,而是包含name
和value
属性的对象数组,所以如果回显时,需要把对应的值遍历填充相应value
获取路由中的id
dva.js store文件中无法使用react方法;
1 | //安装path-to-regexp插件 |
Form表单中有上传组件Upload
,无法在Form.Item的name属性绑定对应值,需要特殊处理下
一般是回显时使用defaultFileList
属性绑定值,新增时可以用自带的onChange
方法
Form表单中的Form.Item组件name
属性为数组时,可以做嵌套对象使用
1 | // 获取相应值 |
react路由跳转进入,链接参数为数字,刷新后,链接参数变字符串
1 | const { query } = this.props.location; |
tree组件实现筛选只保留目标项(而不是官方那种搜索项高亮+展开)
checkStrictly
是核心,可以使checkedKeys
即选中的数组与treeData
即树列表之间的绑定关系分离开,从
而做到筛选时暂时性的改变treeData
数据不会影响checkedKeys
1 | <!-- 这里最重要的是需要有一个常量一个变量来存储原始数据和筛选后的数据`normListCopy`为筛选后的数据 --> |
dispatch({…}).then(()=>{}) 报错 is not a function
这种情况都是dispatch
中的方法没找到,确认下方法是否声明,或者需要在调用的方法中return
一个值;
用umi搭建的项目,新增环境变量
因为用了umi框架,所以不考虑用cross-env
控制变量;
umi官方推荐一个UMI_ENV
变量,在项目根目录新建config.${UMI_ENV}.ts
文件,添加代码如下:
1 | export default { |
这样,在任意页面代码中process.env.UMI_ENV
就是当前环境变量值,这个和vue-cli
中的.env.{mode}
文件异曲同工,都是在环境配置文件输出环境变量