uniapp 的navgationto方法在url后面拼接数据为什么接收到的是[object,object]
时间: 2023-11-28 08:47:36 浏览: 81
ThinkPHP中使用ajax接收json数据的方法
5星 · 资源好评率100%
可能是因为你在使用 `navigationTo` 方法的时候,在 URL 后面拼接了一个对象,而在接收到这个 URL 的页面中,没有正确地解析这个对象。
在使用 `navigationTo` 方法时,可以将要传递的数据以字符串的形式拼接在 URL 后面,如:
```javascript
// 在当前页面跳转到 target 页面,并传递参数
uni.navigateTo({
url: '/pages/target/target?param1=value1¶m2=value2'
})
```
在接收数据的页面中,可以通过 `this.$route.query` 对象来获取到这些参数,如:
```javascript
// 在 target 页面中获取参数
console.log(this.$route.query.param1) // 输出:value1
console.log(this.$route.query.param2) // 输出:value2
```
如果你需要传递一个对象,可以使用 `encodeURIComponent` 和 `JSON.stringify` 方法将对象转换为字符串,并在 URL 后面拼接这个字符串。在接收数据的页面中,可以使用 `JSON.parse` 方法将字符串转换为对象。
例如:
```javascript
// 在当前页面跳转到 target 页面,并传递对象参数
let obj = { name: '张三', age: 18 }
uni.navigateTo({
url: '/pages/target/target?data=' + encodeURIComponent(JSON.stringify(obj))
})
```
在 target 页面中,可以通过以下方式获取到传递的对象参数:
```javascript
// 在 target 页面中获取对象参数
let dataStr = decodeURIComponent(this.$route.query.data)
let dataObj = JSON.parse(dataStr)
console.log(dataObj.name) // 输出:张三
console.log(dataObj.age) // 输出:18
```
阅读全文