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
          }
        }
      })
    }
  }
}
相关推荐
牛奶2 分钟前
开发者的"奇技淫巧":那些让你效率翻倍的实战技巧
前端·后端·程序员
咸鱼翻身更入味2 分钟前
Vue创建一个简单的Agent聊天——工具调用
前端
Timo来了2 分钟前
indexDB的用法示例
前端
walking9575 分钟前
重新学习前端之设计模式与架构
前端·javascript·面试
walking9578 分钟前
重新学习前端之TypeScript
前端·javascript·面试
walking9579 分钟前
重新学习前端之Linux
前端·vue.js·面试
walking9579 分钟前
重新学习前端之CSS
前端·vue.js·面试
walking9579 分钟前
重新学习前端之Git
前端·vue.js·面试
walking9579 分钟前
重新学习前端之小程序
前端
魔术师Grace12 分钟前
AI让我退化成原始人了
前端·程序员