antd-日历组件,前后禁止选择,只能选中间一部分的实例

作者:fang_ze_zhang 时间:2024-04-27 15:56:35 

antd-日历组件,前后禁止选择,只能选中间一部分:


dateDisabledDate(current) { // 需求有效期的禁止选择时间
 if (this.state.sailingtimeValue != null && this.state.sailingtimeValue.length != 0) {
  return current && (current < moment().subtract(1, 'd').add(1, "M") || current > moment(this.state.sailingtimeValue[0]).subtract(1, 'd'));
 } else {
  return current && current < moment().subtract(1, 'd').add(1, "M")
 }
}

补充知识:关于 Ant Design 中 Input 组件的 defaultValue 属性的一个小问题

记录关于一次 Ant Design 使用时遇到的一个问题,defaultValue属性赋值,页面交互操作处理数据之后页面数据未更新(未按照预期显示)。


class Component extends React.Component{
 constructor(props) {
  super(props);
  this.state = {
   list: [
    {name: 111},
    {name: 222},
    {name: 333},
   ]
  };
 }

deal(index) {
  let {list} = this.state;
  list.splice(index, 1);
  this.setState({
   list
  });
 }

render() {
  let {list} = this.state;

return (
   <span>
   <Button type="danger" onClick={this.deal.bind(this, index)}>删除</Button>
   {
    list.map((item, index) => {
     <Row>
      <Col span={24}>
       <Item {...formItemLayout} label=" " colon={false}>
        <Input defaultValue={item.name}
          onChange={event => {this.nameChange(event, index)}} />
       </Item>
      </Col>
     </Row>
    })
   }
   </span>
  );
 }
}

页面初始效果:

antd-日历组件,前后禁止选择,只能选中间一部分的实例

经过 deal 方法处理之后的效果:

antd-日历组件,前后禁止选择,只能选中间一部分的实例

经过多次尝试,比如:

怀疑 splice 出了问题,因为工程中 splice 有很多库的处理,经过各种尝试打印 splice 处理之后的数据结果,排除 splice 因素

antd-日历组件,前后禁止选择,只能选中间一部分的实例

尝试 react-addons-update ,排除,

在 render 函数中打印结果,发现数据更新过了,费解…

在 render 中,通过 {item.name} 检测数据变化,确定 span 显示的数据已经发生变化,最终确定结果:数据已经更新,Input 显示存在问题!!!

……

经过一段时间的思考,确认数据已经更新,只是在显示的时候出了问题,返回去查 antD 的 Input 文档,发现了:

antd-日历组件,前后禁止选择,只能选中间一部分的实例

defaultValue 与 value 两个相似的属性,于是尝试着 value 替代 defaultValue 最终解决问题。

来源:https://blog.csdn.net/fang_ze_zhang/article/details/81868798

标签:antd,日历,组件
0
投稿

猜你喜欢

  • linux系统使用vscode进行qt开发的过程分享

    2023-06-23 02:33:54
  • 跟老齐学Python之啰嗦的除法

    2022-12-18 12:47:38
  • 对Pytorch 中的contiguous理解说明

    2022-04-14 08:34:47
  • Python ChineseCalendar包主要类和方法详解

    2021-10-12 10:40:40
  • SQL Server数据库动态交叉表的参考示例

    2009-01-04 14:44:00
  • 以大热剧《觉醒年代》为例用Python绘制可视化仪表盘

    2022-03-23 15:27:07
  • php插件功能实现方法介绍

    2023-05-30 12:28:52
  • mysql修改密码的三方法和忘记root密码的解决方法

    2024-01-24 18:45:12
  • js处理自己不能定义二维数组的方法详解

    2023-09-06 21:25:12
  • Oracle数据库表空间超详细介绍

    2024-01-17 16:49:22
  • Jupyter Notebook 文件默认目录的查看以及更改步骤

    2022-03-22 15:01:19
  • Python获取当前时间日期的实现示例

    2021-12-26 04:43:21
  • python数据预处理 :数据共线性处理详解

    2022-06-29 09:46:24
  • 基本的页面设计元素布局比例

    2007-12-15 09:43:00
  • vue单页应用中如何使用jquery的方法示例

    2024-05-09 10:40:14
  • 利用Python找出删除自己微信的好友并将他们自动化删除

    2022-05-23 00:10:13
  • JavaScript中一个奇葩的IE浏览器判断方法

    2024-04-17 10:24:44
  • sqlserver中将varchar类型转换为int型再进行排序的方法

    2012-07-11 15:34:41
  • PHP PDOStatement::nextRowset讲解

    2023-06-06 07:18:28
  • 使用JavaScript脚本无法直接改变Asp.net中Checkbox控件的Enable属性的解决方法

    2024-05-03 15:06:27
  • asp之家 网络编程 m.aspxhome.com