uniapp随记

1、this的指向

在使用api-uni.chooseMedia时,选中的图片不能给data中的变量赋值,需要增加变量代替this
参考文章
原来的代码

chooseMedia() {
	uni.chooseMedia({
		count: 9,
		mediaType: ['image', 'video'],
		sourceType: ['album', 'camera'],
		maxDuration: 30,
		camera: 'back',
		success(res) {
			console.log('res', res.tempFiles)
			this.srcList = res.tempFiles
		}
	})
},

改之后的代码

chooseMedia() {
	let self = this
	uni.chooseMedia({
		count: 9,
		mediaType: ['image', 'video'],
		sourceType: ['album', 'camera'],
		maxDuration: 30,
		camera: 'back',
		success(res) {
			console.log('res', res.tempFiles)
			self.srcList = res.tempFiles
		}
	})
},

2、使用uni.navigateBack返回后,页面不刷新

uni.navigateBack({
  delta:1 // 返回的页面数,如果delta大于现有页面数,则返回到首页
})

在返回页面的onShow生命周期中调用需要刷新数据的方法

// 返回前一页面的页面
export default {
  // ...其他代码...
  onShow(){
    // 调用刷新数据的方法
    this.loadData()
  },
  methods:{
    loadData(){
      // 这里是刷新数据的逻辑
    }
  }
}

3、uniapp云函数识别不了uni

参考文章uniCloud API列表
前端环境(页面/组件)中

uni.request({
  url:'xxx'
})

云函数中

unicloud.request({
  url:'xxx'
})

4、云函数/云数据库

4-1、uniapp用代码创建一个不存在的命名数据库表

参考文章1参考文章2参考文章3

4-2、uniapp调用云函数数据库需要手动刷新

4-3、Error:权限校验未通过,未能获取当前用户信息,当前用户为匿名身份,请参考文档:https://uniapp.dcloud.net.cn/uniCloud/schema.html#handler-permission-error

4-4、Error: 数据库验证失败:提交的字段[“title”,“remark”]在本地数据表的schema文件中不存在

5、传参

5-1、click传参

参考文章1参考文章2

5-2、组件传参

参考文章

5-3、通讯方式

参考文章

6、地图

6-1、uniapp获取当前位置具体信息

export default {
  methods: {
    getCurrentLocationInfo() {
      // 获取当前位置的经纬度
      uni.getLocation({
        type: 'wgs84',
        success: (res) => {
          this.getAddressByLatLng(res.latitude, res.longitude);
        },
        fail: () => {
          uni.showToast({
            title: '无法获取位置信息',
            icon: 'none'
          });
        }
      });
    },
    // 使用经纬度获取详细地址信息
    getAddressByLatLng(latitude, longitude) {
      // 这里以高德地图API为例
      const amapKey = '你的高德地图API Key';
      const url = `https://restapi.amap.com/v3/geocode/regeo?key=${amapKey}&location=${longitude},${latitude}`;
 
      uni.request({
        url: url,
        success: (res) => {
          if (res.data && res.data.regeocode) {
            const address = res.data.regeocode.addressComponent;
            uni.showToast({
              title: `当前位置:${address.province} ${address.city} ${address.district} ${address.township}`,
              icon: 'none'
            });
          } else {
            uni.showToast({
              title: '无法获取详细地址信息',
              icon: 'none'
            });
          }
        },
        fail: () => {
          uni.showToast({
            title: '请求失败',
            icon: 'none'
          });
        }
      });
    }
  }
}
  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值