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;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章