uniapp上传文件问题以及返回上一页出现退出app的问题记录

server/2025/3/17 17:21:57/

uniapp上传文件使用uni.uploadFile,如果直接一次性在success里完成会导致页面自动刷新,特别是添加了本页面有onshow()方法,上传完会自动调用onshow()方法。

建议使用官方的方式分成两个方法处理:

async afterRead(event) {let fileListLen =this.fileList.length;for (let i = 0; i < event.file.length; i++) {that.uploadPromise(event.file[i]).then(result=>{let item = this.fileList[fileListLen]//当前文件item.status ="success"item.message =""item.url =resultfileListLen++})}},async uploadPromise(myfile: { url: any; name: any; type: any; }) {let accessToken = uni.getStorageSync('access-token')return new Promise((resolve, reject) => {console.log(myfile.type)uni.uploadFile({//后台读取不到文件名url: env.baseUrl+'api/Problem/uploadAttachs',//file:myfile,//浏览器环境只能用单文件方式上传filePath:myfile.url,//app环境能用多文件或本地文件路径方式上传name:'file',header:{'ignoreCancelToken': true,'Authorization':`Bearer ${accessToken}`},formData:{file: myfile,fileName: myfile.name,fileType: myfile.type},timeout:180000,success: (res) => {console.log('上传结果'+res.data)let resdata = JSON.parse(res.data);setTimeout(() => {let fileurl = resdata.result?resdata.result.url:'';resolve(fileurl);}, 1000);},fail: (error) => {reject(error);}});});}

后端返回的文件相对路径,再保存方法中处理一起提交。但莫名奇妙的出现提交完成后直接退出的情况,一搜索啥都找不到。ai提示使用事件阻止event.preventDefault();但这里似乎不合适。

真机测试发现就是uni.showToast方法的问题。

updateProblem(reqdata).then(res => {if (res.code == 200) {uni.navigateBack({delta: 1 // 返回上一级页面});//与返回上一页一起使用弹窗会导致直接退出app// uni.showToast({// 	title: '编辑成功',// 	icon: 'success',// 	duration: 2000// });}else{uni.showToast({title: '编辑失败',icon: 'warning',duration: 2000});}}).catch(()=>{uni.showToast({title: '编辑保存异常,请稍后再试!',icon: 'warning',duration: 2000});})

真的很奇怪,提交完成后返回上一页就不能提示了。


http://www.ppmy.cn/server/175742.html

相关文章

如何打造TikTok矩阵:多账号管理与内容引流的高效策略

随着短视频平台的崛起&#xff0c;TikTok成为了全球范围内最具影响力的社交平台之一。在这个平台上&#xff0c;通过精确的内容营销和运营策略&#xff0c;许多创作者和品牌成功实现了曝光、粉丝增长和变现。为了提高运营效率&#xff0c;许多专业的内容创作者和团队开始使用Ti…

【每日学点HarmonyOS Next知识】页面引用问题、Json三方库、路由表使用、下拉刷新问题、视频播放错误

1、HarmonyOS 全屏的自定义组件被其他页面引用后导致其他页面按钮功能无法使用问题&#xff1f; 参考代码&#xff1a; //1.index.ets Entry Component struct First {State visible: Visibility Visibility.Nonebuild() {// 使用stack可以实现假的dialog覆盖原页面上面Stac…

摄像头模块ISP处理流程

摄像头模块的ISP&#xff08;图像信号处理器&#xff09;处理流程是对图像传感器输出的原始信号进行系统性优化的过程&#xff0c;主要分为以下关键步骤及对应功能模块&#xff1a; 一、原始信号输入与预处理 ‌传感器信号捕获‌ CMOS/CCD传感器将光信号转换为模拟电信号&…

【QA】建造者模式在Qt有哪些应用

#设计模式 #Qt 一、QDomDocument&#xff08;XML 文档构建&#xff09; 模式角色&#xff1a; Builder&#xff1a;QDomDocument 本身Product&#xff1a;XML 文档对象Director&#xff1a;用户代码通过 QDomDocument 逐步构建文档结构 示例代码&#xff1a; QDomDocument…

DeepSeek-prompt指令-当DeepSeek答非所问,应该如何准确的表达我们的诉求?

当DeepSeek答非所问&#xff0c;应该如何准确的表达我们的诉求&#xff1f;不同使用场景如何向DeepSeek发问&#xff1f;是否有指令公式&#xff1f; 目录 1、 扮演专家型指令2、 知识蒸馏型指令3、 颗粒度调节型指令4、 时间轴推演型指令5、 极端测试型6、 逆向思维型指令7、…

(C语言)写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和(递归函数)

#include <stdio.h> int DigitSum(int n){if(n<10){return n;}return (n%10)DigitSum(n/10); } int main(){printf("请输入一个非负整数:\n");int a0;while(1){if(scanf("%d",&a)!1 || a<0){printf("输入不合法请重新输入非负整数&am…

深入分析 Shell 中 IFS、数组赋值与输出行为

在 Shell 脚本中&#xff0c;IFS&#xff08;Internal Field Separator&#xff09;是一个至关重要的环境变量&#xff0c;它用于定义字符串或数组在分隔时使用的字符。默认情况下&#xff0c;IFS 包括空格、制表符和换行符&#xff0c;Shell 会使用这些字符来分隔输入或命令输…

人工智能之数学基础:线性变换之吉文斯变换

本文重点 吉文斯变换(Givens transformation)亦称平面旋转变换,是数值代数的基本工具之一,它是一种正交变换。 平面旋转矩阵 在前面的线性变换的课程中,我们学习过矩阵其实是一个函数,其中我们介绍了一个正交矩阵,它可以完成向量的旋转,平面旋转矩阵是在乘以一个向量…