uniapp路由传参存在数据类型失真的问题

javascript 复制代码
export default {
  methods: {
    jump() {
      // 通过params传参
      this.$Router.push({name: 'demo', params: {
      	number:1,
        name: '123',
        value: null
      }})
    }
  }
}

目标模块接收参数:

javascript 复制代码
export default {
  onLoad() {
    // 获取参数
    const {number,name, value} = this.$Route.query
    console.log(number,name,value) // '1', '123', 'undefined'
  }
}

这时发现,目标模块接收到的参数都会变成字符串类型,并且null值会变成字符串的undefined;

解决以上问题,可以将传递的参数构造成一个嵌套对象,如用一个data属性来装填我们的参数:

javascript 复制代码
export default {
  methods: {
    jump() {
      // 通过params传参
      this.$Router.push({
        name: 'demo', 
        params: {
          data: {
            number:1,
        	name: '123',
        	value: null
          }
        }
      })
    }
  }
}
相关推荐
光影少年几秒前
react navite图片加载优化、大图卡顿、缓存策略
前端·react native·react.js
小林ixn几秒前
用 Next.js 和 Redis 撸一个 Markdown 笔记系统:RSC 实战与组件化拆解
前端·redis·next.js
渣波1 分钟前
重构旅行体验:基于 React 的 AI 旅游助手对话系统实战解析
前端·javascript
今日无bug4 分钟前
列表转树:一道题搞懂 HashMap 在算法里的价值
前端·数据结构
用户921080262864 分钟前
5. 数据大屏实时通信第一步:为什么选择 WebSocket,以及如何接入 Socket.IO
前端
岁月留痕1685 分钟前
17 实战项目二:实现“日记”项目多页面管理
前端
李顿波6 分钟前
Chrome 插件弹窗一直停留在初始的小尺寸 —— 你看到的小方块
前端·javascript·chrome
悟空瞎说6 分钟前
Cesium 与 Three.js 融合实战:在数字地球上渲染自定义 3D 场景
前端
渣波8 分钟前
React 移动端首页架构实战:从并发请求到防御性编程的深度解析
前端·javascript
a11177615 分钟前
原生 Markdown 阅读与编辑器 开源项目
前端·开源·软件