react 之 fetch 登入請求formData提交引數
阿新 • • 發佈:2019-01-22
1、 react 表單
按照以往 js 獲取表單資料的方法,當然是獲取到該 input 的 ID,然後根據 id 定位後獲取到其 value 值,但是很可惜,react 不能這樣做。
react 對錶單元素做了優化處理,對其進行抽象處理,使其使用方式更統一和規範。
約束性元件和非約束性元件
約束性元件,簡單來說就是React管理了它的value,而非約束性元件的value則是由原生的DOM管理。
所以在寫法上區別很大:
非約束性元件寫法:
圖片.png
defaultValue 中就是原生DOM中的value屬性,非約束性元件中的value值就是使用者輸入的內容,React完全不管理輸入的過程。
約束性元件寫法:
圖片.png
約束性元件中的value值不再是一個寫死的值,而是寫在 state 中,由 this.handleChange 負責管理。
在 handleChange 中可以重新渲染 state 的值,同時也可以對輸入的內容進行校驗。
2、fetch 資料請求
當我們拿到使用者名稱和密碼時,需要將資料提交給伺服器端並得到返回值。fetch 傳引數必須要是 formData,就是這個折磨了我好久。
let url = ".................................";//介面地址 let formData = new FormData(); formData.append('c','login'); formData.append('username', this.state.userName); formData.append('password', this.state.passWord); formData.append('client', 'android'); fetch(url,{ method: 'post', body: formData, }).then(function (res) { return res.json(); }).then(function (json) { if (json.code == "200") { console.log("232323233-----正確") }else if (json.code == "400") { console.log("2323232323------錯了~") } })