ant design的Switch组件的坑,怎么更改Switch的状态?

Posted 清颖~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ant design的Switch组件的坑,怎么更改Switch的状态?相关的知识,希望对你有一定的参考价值。


用Switch时,怎么都改不了状态;要么就是切换页面时,再回本页,选择的值不见了;还有,切换Switch时,怎么把其他表单项给重置了呢?
重点:使用setFieldsValue更改取值;使用defaultChecked确定默认值。

看下错误代码,你是否犯过该类问题呢?如果有其他问题,欢迎评论区留言,一起讨论。

不能更改状态?错误示范:

this.state=
	show:false

<Form.Item wrapperCol= span: 4  label="是否启用">
     getFieldDecorator('show', 
        initialValue: this.state.show,
        rules: [ required: true, message: '请选择!' ],
      )(
        <Switch
          onChange=(e) => 
            setFieldsValue( show: e );
          
          // 不可!!!
          checked=this.state.show
        />
      )
</Form.Item>

以上代码使用了checked,会导致点击失效,切换不了状态!个人理解的原因是:页面初始化state值是false,checked指定了为false。

更改状态后,Switch以下的其他组件也被重置,错误示范:

这里使用了state设置和取值。
这里的switchChecked是定义的是否选中的状态。看具体逻辑。

正确代码:

this.state=
	show:false

<Form.Item wrapperCol= span: 4  label="是否启用">
     getFieldDecorator('show', 
        initialValue: this.state.show,
        rules: [ required: true, message: '请选择!' ],
      )(
        <Switch
          onChange=(e) => 
            setFieldsValue( show: e );
          
          defaultChecked=this.state.show
        />
      )
</Form.Item>

之后就可以随意开关了,取值也没问题。

以上是关于ant design的Switch组件的坑,怎么更改Switch的状态?的主要内容,如果未能解决你的问题,请参考以下文章

Ant Design of Vue —— setFieldsValue方法 动态操作Switch组件

ant Design 使用记录

如何更改 Ant-Design 'Select' 组件的样式?

实战 ant design pro 中的坑

ant design vue + ts 时遇到的坑之from 表单

ant design组件Modal对话框的Confirm怎么使用的,怎么调用请求,我这代码不行啊