Antd Design Pro ProForm组件数据转化convertValue应该怎么使用呢?

Antd Design Pro 中的 ProForm组件数据转化convertValue, transform 怎么使用呢?
表单项中使用了ProFormDigitRange, 组件值是一个数组,后台服务器接收的是字符串,所以我需要在提交和表单初始化时转化这个值。但是失败了,在表单输入时就报错了,是我理解错了这个用法吗?

<ProFormDigitRange
        colProps={{ span: 12 }}
        label="范围(m)" name="depRange" rules={[{ required: true }]}
        convertValue={(value) => {
          console.log('value', value);
          return (value && value.includes('~')) ? value.split('~') : [];
        }}
        transform={(value, f) => {
          console.log('tranfrom', value);
          return value && value.length > 0 ? { depRange: value.join('~') } : '';
        }}
      />

convertValue, transform 在表单初始化时都执行了,所以我写的转化逻辑就报错了,应该怎么使用呢?
image.png

阅读 1.6k
1 个回答
✓ 已被采纳

我把初始化的转化放到ProForm里面的request来处理了,表单项里就保留了transform


     <ProForm
 request={async () => {
        return { ...current, depRange: current?.depRange && current.depRange.includes('~') ? current.depRange.split('~') : [] };
      }}
>
<ProFormDigitRange
        colProps={{ span: 12 }}
        label="范围(m)" name="depRange" rules={[{ required: true }]}
        transform={(value, f) => {
          return (value && value.includes('~')) > 0 ? '' : { depRange: value.join('~') };
        }}
      />

</ProForm>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进