返回

miti-ui组件picker踩坑记

前端

在项目中,我需要使用日期选择器和时间选择器,于是我选择了MIT-UI的picker组件。这个组件看起来很简单,文档也很齐全,但我却在使用它的时候遇到了很多问题。

第一个坑是,picker组件的默认值不正确。当我使用日期选择器时,默认值是当天的日期。但是,我希望默认值是空值。于是我在组件的props中设置了defaultValue属性,并将它设置为null。但是,当我这样做的时候,组件却报错了。错误信息是:"TypeError: Cannot read properties of null (reading 'getTime')。"

我花了很长时间才找到这个问题的原因。原来,picker组件的defaultValue属性只能是一个Date对象。所以我需要先创建一个Date对象,然后才能把它作为defaultValue属性的值。

第二个坑是,picker组件的disabled属性不生效。当我需要禁用日期选择器时,我在组件的props中设置了disabled属性,并将它设置为true。但是,当我这样做的时候,组件却没有被禁用。

我花了很长时间才找到这个问题的原因。原来,picker组件的disabled属性只能禁用组件的交互功能,而不能禁用组件的显示。所以我需要在组件的style属性中设置display属性,并将它设置为none。

第三个坑是,picker组件的format属性不生效。当我需要改变日期选择器的格式时,我在组件的props中设置了format属性,并将它设置为"YYYY-MM-DD"。但是,当我这样做的时候,组件的格式并没有改变。

我花了很长时间才找到这个问题的原因。原来,picker组件的format属性只能改变组件的输入框的格式,而不能改变组件的显示格式。所以我需要在组件的style属性中设置date-format属性,并将它设置为"YYYY-MM-DD"。

第四个坑是,picker组件的value属性不生效。当我需要改变日期选择器选中的日期时,我在组件的props中设置了value属性,并将它设置为一个Date对象。但是,当我这样做的时候,组件选中的日期并没有改变。

我花了很长时间才找到这个问题的原因。原来,picker组件的value属性只能改变组件的输入框的值,而不能改变组件选中的日期。所以我需要在组件的onChange属性中设置一个函数,并将它设置为改变组件选中的日期。

第五个坑是,picker组件的closeOnSelect属性不生效。当我需要在选择日期后关闭日期选择器时,我在组件的props中设置了closeOnSelect属性,并将它设置为true。但是,当我这样做的时候,组件并没有在选择日期后关闭。

我花了很长时间才找到这个问题的原因。原来,picker组件的closeOnSelect属性只能在组件的type属性设置为date或time时生效。所以我需要在组件的type属性中设置date或time。

第六个坑是,picker组件的trigger属性不生效。当我需要改变日期选择器的触发方式时,我在组件的props中设置了trigger属性,并将它设置为click。但是,当我这样做的时候,组件的触发方式并没有改变。

我花了很长时间才找到这个问题的原因。原来,picker组件的trigger属性只能在组件的type属性设置为date或time时生效。所以我需要在组件的type属性中设置date或time。

第七个坑是,picker组件的placement属性不生效。当我需要改变日期选择器的弹出方向时,我在组件的props中设置了placement属性,并将它设置为bottom。但是,当我这样做的时候,组件的弹出方向并没有改变。

我花了很长时间才找到这个问题的原因。原来,picker组件的placement属性只能在组件的type属性设置为date或time时生效。所以我需要在组件的type属性中设置date或time。

第八个坑是,picker组件的appendToBody属性不生效。当我需要将日期选择器弹出到body中时,我在组件的props中设置了appendToBody属性,并将它设置为true。但是,当我这样做的时候,组件并没有弹出到body中。

我花了很长时间才找到这个问题的原因。原来,picker组件的appendToBody属性只能在组件的type属性设置为date或time时生效。所以我需要在组件的type属性中设置date或time。

第九个坑是,picker组件的offset属性不生效。当我需要改变日期选择器的偏移量时,我在组件的props中设置了offset属性,并将它设置为一个对象。但是,当我这样做的时候,组件的偏移量并没有改变。

我花了很长时间才找到这个问题的原因。原来,picker组件的offset属性只能在组件的type属性设置为date或time时生效。所以我需要在组件的type属性中设置date或time。

第十个坑是,picker组件的theme属性不生效。当我需要改变日期选择器的主题时,我在组件的props中设置了theme属性,并将它设置为dark。但是,当我这样做的时候,组件的主题并没有改变。

我花了很长时间才找到这个问题的原因。原来,picker组件的theme属性只能在组件的type属性设置为date或time时生效。所以我需要在组件的type属性中设置date或time。