uni-app传递formdata
时间: 2024-09-07 10:05:27 浏览: 65
object-to-formdata:方便JavaScript函数,可将对象序列化为FormData实例
在uni-app中,如果你想通过FormData对象从一个页面传递数据到另一个页面,可以按照以下步骤操作:
1. **创建FormData**: 在发送请求的页面,比如`PageA.vue`,获取表单数据并将其添加到FormData实例中:
```javascript
<template>
<view>
<!-- 表单元素 -->
<form ref="myForm" @submit.prevent="submitData">
<!-- 输入框、选择器等 -->
</form>
</view>
</template>
<script>
export default {
methods: {
submitData() {
const formData = new FormData();
formData.append('key1', this.inputValue);
formData.append('file', this.fileInput.files[0]); // 如果有文件上传
uni.navigateTo({
url: '../PageB',
query: { formData: JSON.stringify(formData) }, // 将FormData序列化成字符串传过去
});
},
}
}
</script>
```
在这个例子中,我们先创建了一个FormData实例,并将表单的数据添加进去。然后,当用户提交表单时,我们将这个FormData对象转化为JSON字符串作为query参数传递给下一个页面`PageB.vue`。
2. **接收数据**: 在接收页面`PageB.vue`,你需要解析查询字符串并恢复原始的FormData对象:
```javascript
<template>
<view>
<button @click="receiveFormData">显示数据</button>
</view>
</template>
<script>
import uni from '@dcloudio/uni-app';
export default {
data() {
return {
receivedFormData: null,
};
},
created() {
this.receivedFormData = uni.getQuery('formData'); // 获取查询参数
},
methods: {
receiveFormData() {
if (this.receivedFormData) {
const parsedFormData = JSON.parse(this.receivedFormData); // 解析回原来的FormData
// 现在你可以使用parsedFormData处理接收到的数据了
}
},
},
};
</script>
```
在这个接收页面,我们在创建生命周期钩子里获取查询参数,然后在需要的时候解析它。
阅读全文