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
          }
        }
      })
    }
  }
}
相关推荐
奶昔不会射手14 小时前
自定义vue3函数式弹窗
前端·javascript·css
new code Boy14 小时前
前端全栈之路
前端
牛奶14 小时前
为什么敲几个字母就能访问网站?DNS原理大揭秘
前端·http·dns
wuhen_n14 小时前
破冰——建立我们的AI开发实验环境
前端·javascript
HelloReader15 小时前
Flutter 自适应布局一套代码适配手机和平板(十二)
前端
牛奶15 小时前
HTTP裸奔,HTTPS穿盔甲——它们有什么区别?
前端·http·https
梓言15 小时前
tailwindcss构建执行npm exec tailwindcss init -p 报错
前端
哈罗哈皮15 小时前
龙虾(openclaw)本地快速安装及使用教程
前端·aigc·ai编程
用户231154445305815 小时前
React中实现“双向绑定”效果的几种方式
前端
HelloReader15 小时前
Flutter Sliver 高级滚动打造 iOS 通讯录体验(十三)
前端