【问题标题】:Using React-Select with React-Final-Form将 React-Select 与 React-Final-Form 一起使用
【发布时间】:2021-05-28 03:38:28
【问题描述】:

我在 React-Final Form 中使用 React-Select。当使用 React-Select 选择一个选项时,它会传递一个对象而不是单个值示例 {label: Foo, value: 100}。我只需要将“值”传回服务器。在 Redux-Forms 中,您可以使用 props.change(),但这似乎不是这个 React-Final-Forms 的选项。我尝试在 onChange 函数上编写以将内容存储在状态中,但是当我这样做时,React-Select 输入不再包含值。

表格


onSubmit = (data) => {
    if (data.incidentNumber) {
      //incident being
      this.props.incidentActions.editincident(data);
    } else {
      //new incident is being created
      this.props.incidentActions.createnewincident(data);
    }
  };

ReactSelectAdapter = ({ input, ...rest }) => (
    <Select {...input} {...rest} searchable />
  );

<Form
        onSubmit={this.onSubmit}
        render={({ handleSubmit, form, submitting, pristine, values }) => (
          <form onSubmit={handleSubmit}>
            <Row>
              <Col>
                <Label label="Water System" htmlFor="systemId" required />
                  <Field
                    name="systemId"
                    component={this.ReactSelectAdapter}
                    options={systems}
                    className="mb-2"
                  />
              </Col>
            </Row>
            .... more fields


提交的表格数据示例:

 {
   "systemId":{"label":"ACME WATERSYSTEM","value":577},
   "description":"a water system"
}

我怎样才能让它只传回来:

{
   "systemId":577,
   "description":"a water system"
}

【问题讨论】:

  • 你能展示你的onSubmit方法吗?
  • @MezbaulHaque - 我已将其添加到 OP

标签: reactjs react-final-form


【解决方案1】:

您可以在onSubmit 中进行一些转换以获得所需的格式。比如:

onSubmit = (data) => {
    data = {
        ...data,
        systemId: data.systemId ? data.systemId.value : null,
    };

    if (data.incidentNumber) {
      //incident being
      this.props.incidentActions.editincident(data);
    } else {
      //new incident is being created
      this.props.incidentActions.createnewincident(data);
    }
  };

【讨论】:

  • 谢谢!当常规的旧 JS 做到这一点时,我通过寻找库解决方案使它过于复杂。我重新安排了我的值,以便应该包含 systemId 的字段名称被传回。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-13
  • 2020-01-24
  • 2020-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多