uniapp使用uni.request获取后端数据并渲染 | 含如何处理获取到数据无法渲染问题

这篇具有很好参考价值的文章主要介绍了uniapp使用uni.request获取后端数据并渲染 | 含如何处理获取到数据无法渲染问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题描述:在uniapp中使用uni.request获取后端数据并渲染,但是获取到了数据无法进行全局赋值。

data() {
	return {
		array:[]
	};
},
	
onLoad() {
	this.updateData();
}

updateData(){
	uni.request({
		url:'*****',
		data:{},
		header:{'Content-Type':'application/x-www-form-urlencoded'},
		success:(res)=>{
			console.log(res)
			let data = res.data;                    
			this.array = data;     // 在此步可以获取到数据         
		}, 
		fail: () => {
			uni.showToast({
				icon: 'none',
				title: '网络异常,请稍后重试'
			});
		}
	}); 
		this.useData();			// 调用方法
	}
}	

useData(){
	console.log(this.array);	// 在此步获取到的数据为初始数据
}		
  • 造成数据无法全局赋值的原因主要是:uni.request是异步请求,此时打印出来的值,其执行机制是:useData方法再到uni.request。
  • 如果需要调用函数并渲染到全局,则需要在更改方法的放置位置。
updateData(){
	uni.request({
		url:'*****',
		data:{},
		header:{'Content-Type':'application/x-www-form-urlencoded'},
		success:(res)=>{
			console.log(res)
			let data = res.data;                    
			this.array = data;     // 在此步可以获取到数据  
			this.useData();		   // 在异步进行调用方法       
		}, 
		fail: () => {
			uni.showToast({
				icon: 'none',
				title: '网络异常,请稍后重试'
			});
		}
	}); 
		
	}
}	

附:箭头函数指向问题文章来源地址https://www.toymoban.com/news/detail-523222.html

  • 使用this直接赋值的方法
	uni.request({
		  ...
		  success: (res) => {
			this.data = res.data;	//若使用箭头函数则可以进行赋值
		  },
		  fail: (err) => {
		    console.error(err);
		  },
		});	
  • 使用that来间接赋值的方法
let that = this; 
uni.request({
		  ...
		  success: function(res){
			that.data = res.data;	//使用that来间接赋值
		  },
		  ...
		});	
  • 解释:如果success直接写成普通函数的形式,打印出来的this是success函数自身。而将success修改为箭头函数即可拿到Vue实例对象的数据并进行赋值及渲染到页面上。
  • 区分:如果是箭头函数,this的指向是上下文作用域,不可能指向对象;如果是普通函数或方法,this指向上一个作用域的this或者调用这个方法的对象。

到了这里,关于uniapp使用uni.request获取后端数据并渲染 | 含如何处理获取到数据无法渲染问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • #Uniapp:uni.request(OBJECT)

    uni.request(OBJECT) 发起网络请求。 示例 属性—OBJECT 参数说明 OBJECT 参数说明 https://uniapp.dcloud.net.cn/api/request/request.html 参数名 类型 必填 默认值 说明 平台差异说明 url String 是 开发者服务器接口地址 data Object/String/ArrayBuffer 否 请求的参数 App 3.3.7 以下不支持 ArrayBuffer 类型 header

    2024年01月24日
    浏览(21)
  • 【uniapp&微信小程序】封装uni.request()

    前言         在项目开发过程中,往往需要对请求进行二次封装,这篇文章将对uni.request()进行二次封装,并实现多个环境的请求配置,对请求方式,数据格式等进行封装,将请求做到最简化。 一.封装uni.request() 第一步基于 uni.request() 进行二次封装,集成项目开发中需要的参

    2024年02月09日
    浏览(80)
  • uniapp小程序:使用uni.getLocation通过腾讯地图获取相关地址信息详情(超详细)

    先看运行结果: 流程: 搜索后点击这里 已经有账号的就进行登录,没有账号的进行注册即可 点击控制台: 进去后点击成员管理----我的应用----创建应用 输入相应的参数应用名称(随便写)和应用类型更具你的项目类型进行选择我选择了出行 选择好后点击创建: 创建好后点

    2024年04月25日
    浏览(33)
  • 【uniapp】uni.request请求跨域问题解决方案

    例如,运行H5页面,请求一个地址资源,如果不是本站地址,浏览器就会报跨域错误,这样访问受限 例如,项目代码里是这样写的,运行H5测试 因为 https://gitcode.net 不是本站地址,根据浏览器同源策略,是会报跨域错误, 打开项目的 manifest.json 文件,以源码视图查看,添加以

    2024年02月05日
    浏览(32)
  • Vue3+TS版本Uniapp:封装uni.request请求配置

    作者: 前端小王hs 阿里云社区博客专家/清华大学出版社签约作者✍/CSDN百万访问博主/B站千粉前端up主 uniapp 的封装逻辑不同于 Vue3 项目中直接使用 axios.create() 方法创建实例(在 create 方法中写入请求的地址、请求头、超时等内容),代码如下: PS:上述代码来自博主在B站的

    2024年04月22日
    浏览(25)
  • uniapp微信小程序开发踩坑日记:uni.request回调函数地狱问题

    使用await和async无法解决uniapp中的回调函数地狱问题,因为uni.request并不返回一个 Promise。通常情况下,我们期望await能够等待一个 Promise 或者其它类似 Promise 的对象,然后继续执行下面的代码,但uni.request的 success 回调不符合这个预期 解决方案非常easy!改成用then来接收请求响

    2024年02月20日
    浏览(55)
  • uniapp uni.getLocation获取详细的地址信息

    准备工作,申请腾讯位置服务微信小程序JavaScript SDK 按照下图红框中的步骤一步一步的完成   一、下载上图第三步中的JavaScriptSDK v1.2,并把下载好的SDK放到项目中 二、把下载的小程序SDK引入到页面中 import QQMapWX from \\\"@/utils/qqmap-wx-jssdk.min.js\\\" 三、开始在页面中使用定位获取具体

    2024年02月09日
    浏览(29)
  • 使用 v-for 指令和数组来实现在 Uni-app 中动态增减表单项并渲染多个数据

    在 data 中定义一个数组,用于存储表单项的数据: 在模板中使用 v-for 指令渲染表单项: 在 methods 中定义添加和删除表单项的方法: 这样,每点击一次 “添加表单项” 按钮,就会新增一个表单项,并且你可以通过输入框的 v-model 来动态修改表单项的值。点击对应的 “删除”

    2024年02月10日
    浏览(26)
  • uniapp微信小程序 页面跳转传参(uni.switchTab传参无法获取,uni.reLaunch传参可以获取)

      因为是tab页面,我首先想到的就是通过:uni.switchTab进行页面跳转。 代码如下: 然后在首页的onShow生命周期函数中进行监听路由参数。 代码如下: 结果uni.switchTab跳转的页面是不能够将路由参数传递到页面中的。  这样就可以拿到路由中的参数了。  这样问题就解决了。

    2024年02月10日
    浏览(44)
  • 在uniapp中获取可视区域的高度(uni.getSystemInfo)

    在实际开发中我们会遇到不确定高度的情况,那么在uniapp中我们如何获取区域的高度呐?一起来看看吧 使用到的: uni-app提供了异步(uni.getSystemInfo)和同步(uni.getSystemInfoSync)的2个API获取系统信息 uni.getSystemInfo(OBJECT) 异步获取系统信息 OBJECT 参数说明: 参数名 类型 必填 说明 s

    2024年02月02日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包