antd Form 中 Form.Item里含有自己封装的组件,赋值和取值的问题

问题描述

antd Form 中 Form.Item 有时会使用自己封装的组件,然后发现 Form 的 initialValues 不起作用,以及 onValuesChange 不会触发,获取不到值;

解决方案

封装的子组件中需要手动设置赋值和调用传值,代码如下:

import { memo } from 'react';
import { Select } from '@homed/mortise-ui';

import { SquareMini16pt } from '@homed/mortise-icons';
import styles from './index.less';

interface IProps {
  value?: string;
  onChange?: <T>(p: T) => void;
}

const StatusSelect = memo((props: IProps) => {
  const { onChange, value } = props;
  console.log(props);
  function handleChange<T>(value: T) {
    console.log(`selected ${value}`);
    onChange && onChange(value);
  }

  return (
    <Select allowClear onChange={handleChange} defaultValue={value}>
      <Select.Option value="0">
        <div className={styles.selectItem}>
          <SquareMini16pt color={'#07A45A'} />
          已启用
        </div>
      </Select.Option>
      <Select.Option value="1">
        <div className={styles.selectItem}>
          <SquareMini16pt color={'rgba(0, 0, 0, 0.36)'} />
          未启用
        </div>
      </Select.Option>
    </Select>
  );
});
export default StatusSelect;

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值