【问题标题】:Is OnChange required for react forms anymore?反应表单是否需要 OnChange?
【发布时间】:2019-05-09 13:21:15
【问题描述】:

这只是一个关于 react 的理论问题。

我目前正在学习 ReactJS,它非常好,但我对此感到困惑,并希望得到回应。

在我在网上找到的每一个教程中(大部分都是多年前的,我使用的应该是最新版本的 React 16.8),每个人都表示在创建表单组件时使用onChange 很重要。在这些教程中,如果您没有 onChange 事件,您将无法在表单中输入任何内容。

我觉得奇怪的是,我可以输入文本并且现在一切正常,而无需使用任何 onChange 事件。

我的问题是:

  • 仍然是强制性的吗?
  • 使用它是一种好习惯吗?
  • 我应该忽略它并在没有它的情况下编写代码吗?

【问题讨论】:

  • 如果你想对输入的输入做出反应,它是必需的。 React 默认使用单向绑定。
  • 如果不了解实际代码是什么,就无法回答这个问题。如果您在表单字段中有value 属性,则需要根据任何更改对其进行更新。您是否需要 value 属性取决于使用情况。这一切都在 React 文档中进行了讨论:reactjs.org/docs/forms.htmlreactjs.org/docs/uncontrolled-components.html

标签: reactjs jsx


【解决方案1】:

我认为务实的答案是 onChange 不是必需的,但被认为是最佳实践。使用 React 维护表单状态会创建单一的事实来源,并在以后需要验证时提供帮助。

查看受控组件的 React 文档:

在 HTML 中,<input><textarea><select> 等表单元素通常会维护自己的状态并根据用户输入进行更新。在 React 中,可变状态通常保存在组件的 state 属性中,并且仅使用 setState() 进行更新。

我们可以通过使 React 状态成为“单一事实来源”来将两者结合起来。然后,呈现表单的 React 组件还控制后续用户输入在该表单中发生的情况。以这种方式由 React 控制其值的输入表单元素称为“受控组件”。

Controlled Components Docs

【讨论】:

    猜你喜欢
    • 2015-04-30
    • 2021-10-20
    • 1970-01-01
    • 2017-01-28
    • 2011-02-11
    • 2011-03-04
    • 2020-03-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多