React怎么获取input值且提交,实现方法有几种
Admin 2022-06-15 群英技术资讯 1114 次浏览
这篇文章给大家介绍了“React怎么获取input值且提交,实现方法有几种”的相关知识,讲解详细,步骤过程清晰,有一定的借鉴学习价值,因此分享给大家做个参考,感兴趣的朋友接下来一起跟随小编看看吧。import React from 'react';
class InputDemo extends React.Component{
state = {
InputValue : "",//输入框输入值
};
handleGetInputValue = (event) => {
this.setState({
InputValue : event.target.value,
})
};
handlePost = () => {
const {InputValue} = this.state;
console.log(InputValue,'------InputValue');
//在此做提交操作,比如发dispatch等
};
render(){
return(
<div>
<input
value={this.state.InputValue}
onChange={this.handleGetInputValue}
/>
<button onClick={this.handlePost}>提交</button>
</div>
)
}
}
export default InputDemo;
这里的<input />和<button />都是用的html的标签,当然也可以使用Antd的<Input />和<Button />组件,里面的内容是不变的
首先在组件最上方state中定义了InputValue:"",下面<input />里写了value={this.state.InputValue},如果去掉onChange事件,那么这时候输入框里是什么都输入不了的,因为
React认为所有的状态都应该由 React 的 state 控制,只要类似于<input />、<textarea />、<select />这样的输入控件被设置了value值,那么它们的值永远以被设置的值为准。如果值没被改变,value就不会变化
React中要用setState才能更新组件的内容,所以需要监听输入框的onChange事件,获取到输入框的内容后通过setState的方式更新state的InputValue,这样<input />的内容才会实时更新
再说onChange的handleGetInputValue方法,利用了DOM的Event对象的target事件属性:
target 事件属性可返回事件的目标节点(触发该事件的节点),如生成事件的元素、文档或窗口
详情可见W3C标准介绍
无状态组件写法:
const InputDemo = () => {
let inputValue;
const handlePost = (e) => {
if (e) e.preventDefault();
const valueTemp = inputValue.value;
console.log(valueTemp, '------valueTemp');
//在此做提交操作,比如发dispatch等
};
return (
<div>
<form onSubmit={handlePost}>
<input
ref={input => inputValue = input}
/>
<button onClick={handlePost}>提交</button>
</form>
</div>
)
};
export default InputDemo;
有状态组件写法:
import React from 'react';
class InputDemo extends React.Component {
handlePost = (e) => {
if (e) e.preventDefault();
const valueTemp = this.inputValue.value;
console.log(valueTemp, '------valueTemp');
//在此做提交操作,比如发dispatch等
};
render() {
return (
<div>
<form onSubmit={this.handlePost}>
<input
ref={input => this.inputValue = input}
/>
<button onClick={this.handlePost}>提交</button>
</form>
</div>
)
}
};
export default InputDemo;
Ref 是 React 提供给我们的安全访问 DOM 元素或者某个组件实例的句柄。我们可以为元素添加 ref 属性,然后在回调函数中接受该元素在 DOM 树中的句柄,该值会作为回调函数的第一个参数返回。
除了这两种写法,还可以利用Antd的Form组件实现表单功能,传送门:React利用Antd的Form组件实现表单功能
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要为大家详细介绍了Vue实现简易购物车页面,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
css怎样实现中奖公告无缝滚动的效果?相信大家在一些网站上都有看到过中奖公告,那么这样的循环而且无缝滚动的效果文字展示效果是怎样做的呢?下面我们通过一个实例来了解一下。
这篇文章主要为大家详细介绍了JS实现消灭星星案例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
node的全局对象是“global”,global最根本的作用是作为全局变量的宿主;而所有全局变量(除了global本身以外)都是global对象的属性。在Node.js中可以直接访问到global的属性,而不需要在应用中包含它。
在vue开发中,难免遇到各种表单校验,下面这篇文章主要给大家介绍了关于vue表单验证rules及validator验证器使用的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008