【问题标题】:Is it possible to store numbers in form values?是否可以将数字存储在表单值中?
【发布时间】:2020-08-20 16:43:57
【问题描述】:

我正在尝试将字段键入数字:

<Form
      onSubmit={onSubmit}
      initialValues={{ target_type_id: 1 }}
      render={({ handleSubmit, form, submitting, pristine, values }) => (
        <form onSubmit={handleSubmit}>
          <Field<number> name="target_type_id" type="radio" value={1}>
            {({ input }) => (
              <label>
                <input {...input} /> Alert
              </label>
            )}
          </Field>
          <Field<number> name="target_type_id" type="radio" value={2}>
            {({ input }) => (
              <label>
                <input {...input} /> Lookout
              </label>
            )}
          </Field>
          <Field<number> name="target_type_id" type="radio" value={3}>
            {({ input }) => (
              <label>
                <input {...input} /> Target
              </label>
            )}
          </Field>
          <Field<number> name="target_type_id" type="radio" value={4}>
            {({ input }) => (
              <label>
                <input {...input} /> Blitz
              </label>
            )}
          </Field>
          <pre style={{ flexGrow: 1 }}>
            {JSON.stringify(values, undefined, 2)}
          </pre>
        </form>
      )}
    />

但是,当我单击单选按钮时,捕获的值是一个字符串,因此它与 Field 中指定的数值不匹配

有什么方法可以将值捕获为字符串以外的数据类型?

https://codesandbox.io/s/strongly-typed-form-values-with-react-final-form-forked-cvn4t?file=/src/index.tsx:918-2141

【问题讨论】:

  • 在 html 中一切都是字符串。您可以分配一个数字,但是当您检索它时,它将是一个字符串。但它很简单,您可以将其转换回来做let nun = Number(stringValue)

标签: reactjs react-final-form final-form


【解决方案1】:

从事件中获取值并将其转换为数字。

          <Field<number> name="target_type_id" type="radio" value={3}>
            {({ input }) => (
              <label>
                <input {...input} onChange={(e) => input.onChange(Number(e.target.value))} /> Target
              </label>
            )}
          </Field>

【讨论】:

  • @TheFool 你什么意思?
  • 看一下op的简介。 15k 代表和顶部标签是 javascript。这样的人永远不会问这个问题。即使他们不知道发生了什么,他们确实应该知道,但他们肯定知道如何将字符串转换为数字。
  • 他们的个人资料显示了 173 个 javascript 帖子,得分为 279。这极不可能,我不介意有人不那么有知识,但这里的这种情况只是超现实的。
  • 表明即使是强者也会倒下,是的。
猜你喜欢
  • 1970-01-01
  • 2016-10-21
  • 1970-01-01
  • 2016-05-22
  • 2018-10-17
  • 2012-07-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多