1. 程式人生 > >react 之 fetch 登入請求formData提交引數

react 之 fetch 登入請求formData提交引數

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------錯了~")
    }
})