kingdee / kdesign

An enterprise-class React UI components library
https://react.kingdee.design/
Apache License 2.0
107 stars 44 forks source link

Cascader级联选择 disabled 状态下仍然可以清除 选中的内容 #398

Closed quanzhiyuan closed 1 year ago

quanzhiyuan commented 1 year ago

重现链接或代码

import React from 'react'
import ReactDOM from 'react-dom'
import { Cascader } from '@kdcloudjs/kdesign'

function Demo() {
  const options = [
    {
      value: 'guangdong',
      label: 'Guangdong',
      children: [
        {
          value: 'guangzhou',
          label: 'Guangzhou',
          children: [
            {
              value: 'tianhe',
              label: 'Tian He',
            },
            {
              value: 'yuexiu',
              label: 'Yue Xiu',
            },
          ],
        },
        {
          value: 'shenzhen',
          label: 'Shenzhen',
          children: [
            {
              value: 'futian',
              label: 'Fu Tian',
            },
            {
              value: 'nanshan',
              label: 'Nan Shan',
            },
          ],
        },
      ],
    },
    {
      value: 'jiangxi',
      label: 'Jiangxi',
      children: [
        {
          value: 'nanchang',
          label: 'Nanchang',
          children: [
            {
              value: 'donghu',
              label: 'Dong Hu',
            },
            {
              value: 'qingshanhu',
              label: 'Qing Shan Hu',
            },
          ],
        },
        {
          value: 'ganzhou',
          label: 'Ganzhou',
          children: [
            {
              value: 'zhanggong',
              label: 'Zhang Gong',
            },
            {
              value: 'ningdu',
              label: 'Ning Du',
            },
          ],
        },
      ],
    },
  ]

  function onChange(value) {
    console.log(value)
  }

  return (
    <div style={{ width: '200px' }}>
      <Cascader
        defaultValue={['guangdong', 'shenzhen', 'nanshan']}
        options={options}
        disabled
        onChange={onChange}
        placeholder="Please select"
      />
    </div>
  )
}

ReactDOM.render(<Demo />, mountNode)

重现问题步骤

期望的结果是什么

实际的结果是什么

组件库版本号、浏览器信息

murisans commented 1 year ago
  1. 标题错别字
  2. demo代码有误 image
  3. 推荐使用CodeSandBox演示 #375
  4. https://wq9pz6-3000.csb.app/ 按照示例代码搭建CodeSandBox的demo, 没有复现问题
IrvingOS commented 1 year ago

此 BUG 有三处关联:

存在默认值的单选框可以被清除 image 存在默认值的多选框的单个选项可以被清除 image 存在多个默认值的多选框可以被全部清除 image

@quanzhiyuan @albyben 如果没有其他补充,请把 issue assign 给我

IrvingOS commented 1 year ago

此 BUG 有三处关联:

存在默认值的单选框可以被清除 image 存在默认值的多选框的单个选项可以被清除 image 存在多个默认值的多选框可以被全部清除 image

@quanzhiyuan @albyben 如果没有其他补充,请把 issue assign 给我

397