uni_app+vite+vue3+ts entwickelt kleine Programme, um das Problem des Abrufens von Benutzerinformationen mit getUserProfile() zu lösen

1. Einleitung

Kürzlich entwickelte kleine Programme, Entwicklungsumgebung uni_app+vue3 usw. Beim Abrufen der Benutzerinformationen der Miniprogrammplattform wird ein Fehler gemeldet:

{errMsg: „getUserProfile:fail muss durch die Tippgeste des Benutzers aufgerufen werden“, errNo: 21500}

Ich habe den Fehlercode auf Douyin überprüft:

Ich war sprachlos, als ich diese Erklärung sah. Dann habe ich nach Fehlern auf der Plattform gesucht. Nach langer Suche habe ich schließlich die Lösung im vue2-Upgrade-vue3-Dokument gefunden. Offizieller Link:

uni-app官网 (dcloud.io) icon-default.png?t=N7T8https://zh.uniapp.dcloud.io/tutorial/migration-to-vue3.html#some-miniapp-terminal-events-of-vue3-project-are-delayed-or -Anruf fehlgeschlagen

Die Erklärung wird auch hier gegeben.

2. Codelogik

<template>
	<view class="page">
		<view class="box" data-eventsync="true" @click="getUserProfile">
			<text class="head">头像</text>
			<text>获取用户信息</text>
		</view>
		<button data-eventsync="true" @click="getUserProfile">获取用户信息</button>
	</view>
</template>

<script setup lang="ts">
	const getUserProfile = async () => {
		await new Promise(() => {
			uni.getUserProfile({
				success: (res) => {
					console.log('success', res);
				}, fail: (err) => {
					console.log('err', err);
					uni.showModal({
						title: '提示',
						content: JSON.stringify(err),
						success: function (res) {
							if (res.confirm) {
								 
							} else if (res.cancel) {
								 
							}
						}
					});

				}
			})
		})
		

	}
</script>

Hinweis: Stellen Sie sicher, dass Sie data-eventsync="true" zur Ereignisquelle hinzufügen. Das Bubble-Up zum übergeordneten Knoten wird nicht wirksam. Wie in der Abbildung unten gezeigt, wird der äußeren Ansicht ein Klickereignis hinzugefügt. Wenn ich klicke Für das untergeordnete Element wird ein Fehler gemeldet. Daher muss data-eventsync="true" auch zum untergeordneten Knoten hinzugefügt werden.

Vollständiger Code

<template>
	<view class="page">
		<view class="box" data-eventsync="true" @click="getUserProfile">
			<text class="head" data-eventsync="true">头像</text>
			<text data-eventsync="true">获取用户信息</text>
		</view>
		<button data-eventsync="true" @click="getUserProfile">获取用户信息</button>
	</view>
</template>

<script setup lang="ts">
	const getUserProfile = async () => {
		await new Promise(() => {
			uni.getUserProfile({
				success: (res) => {
					console.log('success', res);
				}, fail: (err) => {
					console.log('err', err);
					uni.showModal({
						title: '提示',
						content: JSON.stringify(err),
						success: function (res) {
							if (res.confirm) {
								 
							} else if (res.cancel) {
								 
							}
						}
					});

				}
			})
		})
		

	}
</script>

 

Die oben genannten Probleme sind bei der Entwicklung von uni_app plus vue3 aufgetreten. Ich hoffe, es wird Ihnen hilfreich sein. Bei der Entwicklung kleiner Programme mit vue2 besteht dieses Problem nicht.

Je suppose que tu aimes

Origine blog.csdn.net/u012941592/article/details/132892899
conseillé
Classement