Manjushaka / blog

3 stars 0 forks source link

antd的坑 #24

Open Manjushaka opened 6 years ago

Manjushaka commented 6 years ago
  1. antd的子组件得取别名,否则打包出错。例子:

    import { Select } from 'antd';
    const Option = Select.Option;
    <Option {...props}></Option>
    <Select.Option {...props}></Select.Option> // 这样子出错
  2. Select组件如果用了styled-component

    const StyledSelect = styled(Select)``; // 里面的内容为空的话,当使用的时候,multiple模式下删除一个option的时候会出错Animation

    解决办法是:1. StyledSelect里面定义style 2. 没有style的话,直接使用Select。

Manjushaka commented 6 years ago
  1. Form表单: ref要使用wrappedComponentRef,例如:
              <CmsReportContentForm
                wrappedComponentRef={form => (this.contentForm = form)}
                edit={boolEdit}
                detail={detail}
              />

    最终提交的时候统一验证:

    // 是否有任何表单改变。
    this.contentForm.props.form.isFieldsTouched()
    // 取得表单的错误和正确的值
    this.contentForm.props.form.validateFieldsAndScroll((err, values) => {
      if (!err) {
        result = { result: true, values };
      } else {
        result = { result: false, err };
      }
    });
Manjushaka commented 5 years ago

AutoComplete 的Option的value值如果与search框输入的值相同,才会自动回填。而且,如果option的children中有空格分割,会挨个删除不了,可以设置optionLabelProp