跳转页面时正常传字符串是没问题的,但是,参数存在特殊字符 # / & 时,则会导致我们接收参数错误,而且会导致参数无法传递。
所以必须要用 encodeURIComponent 编码,目标页面进行 decodeURIComponent 解码
比如列表到详情传参
如果是对象则先转json字符串
<view class="goodedList">
<view class="list-items" v-for="(v,i) in dataList" :key="i"
@click="handleDetails(`/pages/details/details?indexed=${encodeURIComponent(JSON.stringify(v))}`)">
<view>{{v}}</view>
</view>
</view>
<script>
export default {
data() {
},
methods:{
handleDetails(url){
uni.navigateTo({
url
})
},
}
}
</script>
进入详情后转回对象
<script>
export default {
data() {
return {
detailsObj: {}
};
},
onLoad(e) {
this.detailsObj= JSON.parse(decodeURIComponent(e.indexed))
}
}
</script>