react 更新input 默认值setfieldsvalue_React笔记——核心概念:9.表单

1、受控组件

  • 在 React 中,可变状态(mutable state)通常保存在组件的 state 属性中,并且只能通过使用 setState()来更新。
  • state:唯一数据源
  • 渲染表单的 React 组件还控制着用户输入过程中表单发生的操作。被 React 以这种方式控制取值的表单输入元素就叫做“受控组件”。
  • 示例:
a1e203620283096fce5eb0366999de84.png
f9a6911b590bcb630fb5fce70f938b4b.gif

2、Textarea标签

在 HTML 中, 元素通过其子元素定义其文本
3342944a7522ede7fcfb622cf10986e8.png
在 React 中, 使用 value 属性代替示例:
7a20382b79a7182e65f6188f62bc3932.png

3、Select标签

在 HTML 中, 创建下拉列表标签
8aba9212d1590ba8a0b41ee23e25c3b4.png
React 在根 select 标签上使用 value 属性单选示例:
0fa1118b1938ffe5bcc1a568ffbd9c4a.png
9caa359f4d9ced6743f5dc19acb5cb58.gif
多选示例:
7d9fc221c4265a882a6da6fc5e7919d2.png
daf3362d531ead6a757685fd1e19265f.png
8057a1695dd92604080e79d6faa61a3a.gif

4、文件 input 标签

  • 因为它的 value 只读,所以它是 React 中的一个非受控组件
b81e3a2ddb48ee546bd0e74a83998fb5.png

5、处理多个输入

  • 当需要处理多个 input 元素时,我们可以给每个元素添加 name 属性,并让处理函数根据 event.target.name 的值选择要执行的操作。
  • 示例:
bde913dec3f79d03f99f11280539d02b.png
eb614384dac3ccd0e863d49906197742.png
bd1da53a6510f12dccb5741c4c06b13d.gif
  • 使用了 ES6 计算属性名称的语法更新给定输入名称对应的 state 值
a569c1ad7341c18c15fb3d03cdc14c6e.png

6、受控输入空值

  • 在受控组件上指定 value 的 prop 会阻止用户更改输入。如果你指定了 value,但输入仍可编辑,则可能是你意外地将value 设置为 undefined 或 null。
  • 示例:
aa50bc24d001ab0d7b820db1d6e395d3.png

7、受控组件的替代品

  • 使用非受控组件, 这是实现输入表单的另一种方式。

8、成熟的解决方案

  • 包含验证、追踪访问字段以及处理表单提交的完整解决方案,使用 Formik 是不错的选择

关联文章:

  • React笔记——核心概念:1.Hello World
  • React笔记——核心概念:2.JSX简介
  • React笔记——核心概念:3.元素渲染
  • React笔记——核心概念:4.组件&Props
  • React笔记——核心概念:5.State&生命周期
  • React笔记——核心概念:6.事件处理
  • React笔记——核心概念:7.条件渲染
  • React笔记——核心概念:8.列表&Key
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值