uniApp- uni.request的使用——以及箭头函数和普通函数的坑

<tr v-for="(item, index) in filteredData" :key="index" @click="goDetail(item)">
				<td>{{item.id}}</td>
				<td>
					<div class="main">{{item.text}}</div>
				</td>
				<td>{{item.applicant}}</td>
				<td>{{item.date}}</td>
			</tr>

这是前台渲染的代码。

	onShow(res) {
axios.get("https://mock.mengxuegu.com/mock/642f630132affa39a121cd8d/example/ctss").then(res => {
			this.tableData = res.data.data;
		 	console.log(this.tableData);
		 })
	},

需要修改的是这串代码;

因为如果在uniApp中使用axios,会产生跨域或者配置等各种问题,所以综合分析以后,我打算将这串代码修改为用uni.request这个uni自带的api解决问题。

其实原本修改的方向很简单,但是我的出发点上来就错了。

	onShow(res) {
		uni.request({
			method: 'GET',
			url: 'https://mock.mengxuegu.com/mock/642f630132affa39a121cd8d/example/ctss',
			success: (res){
				this.tableData = res.data.data;
				console.log(this.tableData);
			}
		})
		
	},

乍一看没什么问题。并且调试也并不报错。但是就是前台获取不到tableDta的数据。

console.log(this.tableData)可以将GET到的数组打印到终端,但是始终没法渲染给前台。

为什么?

始终找不到原因就只能一个地方一个地方地试。是tableData的值给不到前端吗?

我直接把全局变量tableData设置成了[1]。结果前台渲染成功,console.log(this.tableData)返回渲染了[1],之后我又把console.log()这个命令放到了onShow(res)的第一行命令,同样也返回正确。

终于,当我把这个命令再塞回success中,前台获取不到了。

chartGPT关于函数和箭头函数的区别是这样回答的:

 没错,箭头函数!

我如果使用普通函数的话,按理来说,获取到的数据还需要用return返回到前端。

如此,还不如让我直接=>一下,

修改代码:

	onShow(res) {
		uni.request({
			method: 'GET',
			url: 'https://mock.mengxuegu.com/mock/642f630132affa39a121cd8d/example/ctss',
			success: (res) => {
				this.tableData = res.data.data;
				console.log(this.tableData);
			}
		})
	},

搞定。完美渲染。

Vue3中的很多Api可以在UniApp中使用,但是打包成.apk之后,编译并不通用!

如果想在UniApp中使用更多的Vue3的Api,还需要根据实际情况,进行打包的配置处理。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值