初学React,制作案例页面2

本文介绍了作者初学React时,使用react-bootstrap库创建表单的过程。通过实践,学习了ref的使用以及官方推荐的避免频繁使用ref的方法。作者通过在onChange事件中动态更新state来获取表单值,对于复选框,通过监听onChange事件判断选中状态,并动态更新state以控制页面展示。最后实现了基本的表单功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我想制作一个表单,把react-bootstrap的表单控件都用一遍

先return这么一堆表单控件,爱好那里的复选框数据放在state里面 

页面展示效果这样

 

然后就需要取值了,学习ref知识后,我给每个Form.Control标签都加上了ref属性,再在提交方法里通过React.createRef()获取标签的值。但是react官方文档说让避免频繁使用ref功能,经过指导精简方法:

给state里定义所有的输入框的字段名,值为空;

把每个Form.Control标签的ref属性删掉,换成onChange,方法名相同,给方法传递不同的输入框的字段名当参数;

在onChange的函数里return一个函数作为onChange的回调函数,回调函数自动接收event,在回调函数里this.setState({输入框的字段名:event.target.value})更新state所有的输入框的字段值;

点击提交时从state里取值。

但是复选框不好取值,给复选框放另一个 onChange事件,在事件里判断每次点击时的节点是否选中状态,

如果是选中状态就把选中的值拼接字符串,再把state里的likeDate(复选框数据)里对应的选项的checked设置为true(因为页面展示由likeDate控制中),

如果是取消选中状态就把拼接的字符串中对应的值删掉,state里的likeDate里对应的选项的checked设置为false,

最后将拼接好的多选值this.setState({like:选中的字符串})。

暂时符合一般大众表单功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值