当前位置:   article > 正文

关于使用antd框架踩坑及解决方案整理_antd 'true' 和true 不相等问题

antd 'true' 和true 不相等问题

众所周知,antd是当下react项目中用的比较多的开源ui框架,比较方便,但是在使用过程中,往往不能满足实际的开发需求

我是初次使用antd,以下将罗列自己在项目中遇到的问题及解决方案,希望对大家在开发中遇到同样类似问题有所帮助

 

问题1:在form表单中,如果要遍历一个Object( { } )对象类型或者Array([ ])数组类型,通过setFieldsValue循环重置一组输入控件的值,这时遍历每个元素,所设置的key是个变量,ke要用方括号包裹,即[ ],demo如下:

  1. let Array = [
  2.        {
  3.             code:'name',
  4.             value:'张三'
  5.        },
  6.        {
  7.             code:'birthday',
  8.             value:'2000/01'
  9.        }
  10. ]
  11. Array.forEach((item:object | any,index:number)=>{    
  12.     this.props.form.setFieldsValue({
  13.          [item.code]:item.value ? item.value :undefined,
  14.      })        
  15. })

在这里需要提醒的是,一般输入框在没有值的时候会使用placeholder,当给输入框赋的值为空的时候,应该将值设置为undefined,

原因:

  1. null: Null类型,代表“空值”,代表一个空对象指针,使用typeof运算得到 “object”,所以你可以认为它是一个特殊的对象值。
  2. undefined: Undefined类型,当一个声明了一个变量未初始化时,得到的就是undefined。
  3. 实际上,undefined值是派生自null值的,ECMAScript标准规定对二者进行相等性测试要返回true
  4. 那到底什么时候是null,什么时候是undefined呢?null表示"没有对象",即该处不应该有值。

 

问题2:antd中,table 中如果设置的列均为固定项,那么会出现重复渲染固定项,因为在antd中fixed会把对应的列进行重构新的dom, 导致设置固定的列会重复出现,解决办法是: 给固定列中间增加空列进行占位,如下,

  1. let array = [
  2. {
  3. title: '姓名',
  4. dataIndex: 'name',
  5. width: 120,
  6. fixed: 'left',
  7. },
  8. {
  9. title: '',
  10. dataIndex: 'name',
  11. },
  12. {
  13. title: '操作',
  14. key: 'operation',
  15. fixed: 'right',
  16. width: 120,
  17. }
  18. ]

 

 

问题3:RangePicker等时间选择器中,设置值的话,也是用setFieldsValue,demo:

let time = ["2021.01.01 00:00:00","2021.02.01 23:59:59"],如果想要把变量time的值重置给选择器,是需要用moment将时间转化,否则会出现invalid 的情况,解决方案如下:

  1. {getFieldDecorator('beginTime')(
  2. <RangePicker
  3. ranges={{
  4. '今天': [moment(), moment()],
  5. '最近7天': [moment().subtract(6, 'days'), moment()],
  6. '本月': [moment().startOf('month'), moment()]
  7. }}
  8. />
  9. )}
  10. 改变值的时候,如下操作即可:
  11. this.props.form.setFieldsValue({
  12. beginTime: [moment(time.value[0]+ ' 00:00:00','YYYY-MM-DD HH:mm:ss'),moment(time.value[1]+' 23:59:59' ,'YYYY-MM-DD HH:mm:ss')] ,
  13. })

问题4: 待续........

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/115577
推荐阅读
相关标签
  

闽ICP备14008679号