React-Native中使用fetch()方法来发送请求

在React-Native中发送请求使用fetch方法,该方法是封装过的可以直接使用,不需要从react-native中进行引用。

import React,{Component} from 'react';
import {Button} from 'react-native';
 
export default class DemoComponent
extends Component{

    handlePress=()=>{
        //发起一次网络请求
        var url = "http://jsonplaceholder.typicode.com/users"
        fetch(url).then((response)=>response.json()).then((result)=>{
            console.log(result)
        })
    }

    render(){
        return <Button title="加载数据" onPress={this.handlePress}></Button>
    }
}

给btn的onPress事件绑定一个事件处理函数handlePress,用箭头函数赋值的形式来设置。
直接在事件处理函数中调用fetch方法,传入的参数是请求的路径,然后接上then方法来进行一个json的反序列化,再接上then方法就可以得到响应回来的数据。

如果要发起post请求则

import React,{Component} from 'react';
import {Text,TextInput,Button,View} from 'react-native';

export default class LoginComponent extends Component{
    
    constructor(){
        super();
        this.state = {
            uname:'',
            upwd:''
        }
    }

    handlePress=()=>{
      console.log(this.state);
      var url = 'http://178.10.5.6:8080/user/login',config={
         method:'POST',
         headers:{
             "Content-Type":"application/x-www-form-urlencoded"
         },
         body:"uname="+this.state.uname+"&upwd="+this.state.upwd
      }
      fetch(url,config).then((response)=>response.json()).then((res)=>{
          console.log(res);
          if(res.code==200){
              this.props.navigation.navigate('main')
          }else{
             this.setState({uname:''})
             this.setState({upwd:''})
          }
      })
    }

    handleChangeTextUname=(msg)=>{
        this.setState({uname:msg})
    }

    handleChangeTextUpwd=(msg)=>{
        this.setState({upwd:msg})
    }

    render(){

        return <View>
            <TextInput value={this.state.uname} placeholder="请输入用户名" onChangeText={this.handleChangeTextUname}></TextInput>
            <TextInput value={this.state.upwd} placeholder="请输入密码" secureTextEntry={true} onChangeText={this.handleChangeTextUpwd}></TextInput>
            <Button title="登录" onPress={this.handlePress}></Button>
        </View>
    }
}

首先给2个input进行数据绑定,然后给btn的onPress绑上事件处理函数,
当点击登录按钮式触发事件处理函数,在fetch中除了请求的url之外,还有一个参数是config配置对象,在该对象中将method设置为POST,设置响应的请求头,将要发送给服务端的参数放置在body中就可以了。然后进行json的反序列化,再最后接收并处理响应回来的数据即可。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值