import { Image, Text, View } from '@tarojs/components' import Taro from '@tarojs/taro' import { useEffect, useState } from 'react' import { buildPublicQrImageUrl } from '@/lib/qrImage' export default function WeixinQrImage ({ url }: { url: string }) { const [src, setSrc] = useState('') useEffect(() => { let cancelled = false setSrc('') const remote = buildPublicQrImageUrl(url) if (!remote) return if (Taro.getEnv() !== Taro.ENV_TYPE.WEAPP) { setSrc(remote) return } Taro.downloadFile({ url: remote, success (res) { if (cancelled) return if (res.statusCode === 200 && res.tempFilePath) { setSrc(res.tempFilePath) return } Taro.showToast({ title: '二维码加载失败', icon: 'none' }) }, fail () { if (!cancelled) { Taro.showToast({ title: '二维码加载失败', icon: 'none' }) } }, }) return () => { cancelled = true } }, [url]) return ( {src ? ( Taro.previewImage({ current: src, urls: [src] })} /> ) : ( )} 截图并使用微信扫码识别添加客服微信 ) }