路由传参获取的user对象为何打印username为undefined?
问题原因及解决办法
从你打印的日志能明显看出来:user其实是一个数组,不是单个对象(日志里的内容被[]包裹着)。
你直接用user.username访问,相当于在数组实例上查找username属性——数组本身没有这个属性,自然返回undefined。而直接打印数组时,控制台会展开显示数组里的元素,所以你能看到里面的用户对象和username属性。
解决方式
- 如果你预期传过来的是单个用户对象:检查跳转路由时的传参代码,是不是不小心把用户对象放进数组里传递了(比如写成了
navigate('/xxx', { params: { user: [userObj] } }),应该改成navigate('/xxx', { params: { user: userObj } }))。 - 如果确实是要传递用户列表(数组):那就通过数组索引访问对应元素的属性,比如取第一个用户的
username:console.log(user[0].username)
内容的提问来源于stack exchange,提问作者user20952626
相关产品推荐
相关产品推荐

