跳转页面时正常传字符串是没问题的,但是,参数存在特殊字符 #  /  & 时,则会导致我们接收参数错误,而且会导致参数无法传递。

所以必须要用 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>


Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐