我正在尝试从URL收集id
值。
以前,我在this帖子中寻求帮助。
在路由器文件的index.js
中,我有以下代码:
{ path: '/word/:id',
name: 'word',
component: Word,
props: true,
},
在我的组件中,我有以下代码:
<script>
export default {
props: {
id: Number,
},
created() {
this.routeChanged();
},
watch: {
'id': 'routeChanged',
},
methods: {
routeChanged () {
console.log(this.id);
},
},
};
</script>
我遇到以下错误:
[Vue警告]:道具无效:道具“ id”的类型检查失败。预期数字,为String。
答案 0 :(得分:8)
这是使用Function mode将道具传递给零件的用例:
您可以创建一个返回道具的函数。这样,您就可以将参数转换为其他类型,将静态值与基于路由的值结合起来,等等。
在这种情况下,您可以将函数传递给props: true
选项,而不是使用props
指定route选项:
routes = [{
path: '/word/:id',
component: Word,
props: castRouteParams
}];
function castRouteParams(route) {
return {
id: Number(route.params.id),
};
}
实时示例:https://codesandbox.io/s/8kyyw9w26l(单击“转到测试/ 3”链接)