uni-app中报错 'openid' is read-only解决办法

最近学习uni-app的时候,需要微信授权登录。 ,然后就把微信的授权登录的请求都写在了main.js中,第一次访问url时请求正常,当刷新一下url时,f12就会报错: ‘openid’ is read-only.

贴出报错的源码:

	const openid=null;
	var jweixin = require('jweixin-module')

	uni.getStorage({
		key: 'openid',
		success: function(res) {
			openid= res.data;
		},
		fail: function(){
			
			var codes = getUrlKey('code');
			var state = getUrlKey("state");
			//state='state';
			//根据code获取opid接口
			if (codes == null) {
				//如果code为空,跳转重新认证
				} else {
					uni.request({
						url: 'https://www.easy-mock.com/mock/5c3eec9cca1bbf541c89e9e6/scl/jsons',
						dataType: 'text',
						data: {
							code: codes,
							state: state
						},
						success: res => {
							var s = JSON.parse(res.data);
							console.log(s.data);
							console.log(s.data.openid);
							var openID = s.data.openid;
		                    uni.showModal({
		                    			title: '提示',
		                    			content: '自己的openid:'+s.data.openid+'上级的openid'+state,
		                    			success: function (res) {
		                    				if (res.confirm) {
		                    					console.log('用户点击确定');
		                    				} else if (res.cancel) {
		                    					console.log('用户点击取消');
		                    				}
		                    			}
		                    		});
							//将数据存储在本地缓存中指定的key中
							uni.setStorage({
								key: 'openid',
								data: openID,
								success: function() {
									console.log('数据存储成功');
								}
							});
						},
						fail: err => {
							console.log('request fail', err);
						}
					});			 
				}	
		}
	});

根据上面源码可发现,openid的定义是const。根据JavaScript的用法我们可知:
1.const声明的常量必须初始化
2.const 定义常量的值不能通过再赋值修改,也不能再次声明

解决方法:
定义openid为 var。

var openid = null;

发布了50 篇原创文章 · 获赞 85 · 访问量 161万+

猜你喜欢

转载自blog.csdn.net/qq_24347541/article/details/89631592