一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

node.js|vue.js|jquery|angularjs|React|json|js教程|

服務(wù)器之家 - 編程語(yǔ)言 - JavaScript - React - React獲取input值并提交的2種方法實(shí)例

React獲取input值并提交的2種方法實(shí)例

2022-03-01 16:35GuanJdoJ React

這篇文章主要給大家介紹了關(guān)于React獲取input值并提交的2種方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

方法一  利用DOM提供的Event對(duì)象的target事件屬性取值并提交

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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');
    //在此做提交操作,比如發(fā)dispatch等
  };
 
  render(){
    return(
      <div>
        <input
          value={this.state.InputValue}
          onChange={this.handleGetInputValue}
        />
        <button onClick={this.handlePost}>提交</button>
      </div>
    )
  }
}
 
export default InputDemo;

這里的<input />和<button />都是用的html的標(biāo)簽,當(dāng)然也可以使用Antd的<Input />和<Button />組件,里面的內(nèi)容是不變的

首先在組件最上方state中定義了InputValue:"",下面<input />里寫了value={this.state.InputValue},如果去掉onChange事件,那么這時(shí)候輸入框里是什么都輸入不了的,因?yàn)?/p>

React認(rèn)為所有的狀態(tài)都應(yīng)該由 React 的 state 控制,只要類似于<input />、<textarea />、<select />這樣的輸入控件被設(shè)置了value值,那么它們的值永遠(yuǎn)以被設(shè)置的值為準(zhǔn)。如果值沒被改變,value就不會(huì)變化

React中要用setState才能更新組件的內(nèi)容,所以需要監(jiān)聽輸入框的onChange事件,獲取到輸入框的內(nèi)容后通過setState的方式更新state的InputValue,這樣<input />的內(nèi)容才會(huì)實(shí)時(shí)更新

再說onChange的handleGetInputValue方法,利用了DOM的Event對(duì)象的target事件屬性:

target 事件屬性可返回事件的目標(biāo)節(jié)點(diǎn)(觸發(fā)該事件的節(jié)點(diǎn)),如生成事件的元素、文檔或窗口

詳情可見W3C標(biāo)準(zhǔn)介紹

方法二  利用React的ref訪問DOM元素取值并提交

無(wú)狀態(tài)組件寫法:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
const InputDemo = () => {
  let inputValue;
  const handlePost = (e) => {
    if (e) e.preventDefault();
    const valueTemp = inputValue.value;
    console.log(valueTemp, '------valueTemp');
    //在此做提交操作,比如發(fā)dispatch等
  };
 
  return (
    <div>
      <form onSubmit={handlePost}>
        <input
          ref={input => inputValue = input}
        />
        <button onClick={handlePost}>提交</button>
      </form>
    </div>
  )
};
 
export default InputDemo;

有狀態(tài)組件寫法:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import React from 'react';
 
class InputDemo extends React.Component {
  handlePost = (e) => {
    if (e) e.preventDefault();
    const valueTemp = this.inputValue.value;
    console.log(valueTemp, '------valueTemp');
    //在此做提交操作,比如發(fā)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 元素或者某個(gè)組件實(shí)例的句柄。我們可以為元素添加 ref 屬性,然后在回調(diào)函數(shù)中接受該元素在 DOM 樹中的句柄,該值會(huì)作為回調(diào)函數(shù)的第一個(gè)參數(shù)返回。

除了這兩種寫法,還可以利用Antd的Form組件實(shí)現(xiàn)表單功能,傳送門:React利用Antd的Form組件實(shí)現(xiàn)表單功能

總結(jié)

到此這篇關(guān)于React獲取input值并提交的2種方法的文章就介紹到這了,更多相關(guān)React獲取input值并提交內(nèi)容請(qǐng)搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!

原文鏈接:https://blog.csdn.net/GuanJdoJ/article/details/83375570

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产一区二区在线看 | 日韩操片| caoporn超碰 | 国产香蕉一区二区在线观看 | 女人特黄大aaaaaa大片 | 亚飞与亚基高清国语在线观看 | 日韩一区二区中文字幕 | 午夜宅男影院 | 成人永久免费视频 | 免费日本在线视频 | 国产香蕉国产精品偷在线观看 | 波多野结衣在线观看视频 | 色天天综合网色鬼综合 | 国产成人精品免费视频软件 | 国产欧美va欧美va香蕉在线观看 | 师尊被各种play打屁股 | 久久中文字幕综合不卡一二区 | 好大好硬好深好爽想要小雪 | 亚洲第一二三四区 | 国产午夜精品久久久久 | 深夜福利影院在线观看 | 99精品国产成人一区二区在线 | 亚洲理论视频 | 欧美日韩国产精品自在自线 | xxxx在线视频 | 99re热精品这里精品 | 成人免费一区二区三区在线观看 | 免费观看欧美成人h | yellow高清视频日本动漫 | 法国女佣系列在线播放 | 成熟女人50岁一级毛片不卡 | 欧美成人aaaa免费高清 | 亚洲小视频 | 男人狂躁女人下面狂叫图片 | 亚洲精品一区在线观看 | 护士柔佳 | 亚洲男人天堂av | 欧美成人乱弄视频 | a v在线男人的天堂观看免费 | 色香婷婷| 99久久精品国产免费 |