提交时如何从表单中的 WeekPicker 获取自定义周值

How to get a custom week value from a WeekPicker in a Form when I submit it

我是 ant-design-pro 的新手,我正在编写一个示例项目来帮助我的队友提高效率。

现在我遇到了一个问题,我无法从 WeekPicker 中的 Form 中获取自定义格式的周值,Query String Parameters 中的周值是 week: "2019-12-11T08:45:42.884Z" 应该是 YYYYw 格式,比如 week: 201950.

这是我定义表格的方式:

   ...
   <Form onSubmit={this.handleSearch} layout="inline">
        ...
            <FormItem label="">
              {getFieldDecorator('week')(<WeekPicker placeholder="周" format={'YYYYw'} />)}
            </FormItem>
        ...
   </Form>
   ...

这里是函数代码:

  handleSearch = (e: React.FormEvent) => {
    e.preventDefault();

    const { dispatch, form } = this.props;

    form.validateFields((err, fieldsValue) => {
      if (err) return;
      const values = {
        ...fieldsValue,
      }
      ...
      dispatch({
        type: 'listAndtableList/fetch',
        payload: values,
      });
    });
  } 

表单自动获取每个字段值,它没有注意到我在WeekPicker中定义了一个格式,谁能帮忙?

问过蚂蚁金服的工程师是哪家公司开发的ant-design-pro,得到了答案

WeekPicker总是输入或输出一个moment对象,因为可能存在时区问题,所以我们需要自己处理,虽然我们已经在其中设置了格式。

解决方法如下:

form.validateFields((err, fieldsValue) => {
      if (err) return;

      const weekMoment = fieldsValue['week'];
      const week = weekMoment.format('YYYYw');
      ...
});