来自路由器参数的无效道具类型,预期数量为字符串

abu*_*abu 3 vue-router vuejs2

我正在尝试id从URL 收集价值。

以前,我在这篇文章中获得帮助。

在我index.js的路由器文件中,我有以下代码:

{   path: '/word/:id',
    name: 'word',   
    component: Word,
    props: true,
}, 
Run Code Online (Sandbox Code Playgroud)

在我的组件中,我有以下代码:

<script>
    export default {
        props: {
             id: Number,
        },
        created() {
             this.routeChanged();
        },
        watch: {
            'id': 'routeChanged',
        },
        methods: {
            routeChanged () {
                console.log(this.id);
            },
        },
    };
</script>
Run Code Online (Sandbox Code Playgroud)

我得到以下错误:

[Vue警告]:道具无效:道具“ id”的类型检查失败。预期数字,为String。

ghy*_*ybs 10

这是通过功能模式将道具传递到路径组件的用例:

您可以创建一个返回道具的函数。这允许您将参数转换为其他类型,将静态值与基于路由的值结合起来,等等。

在您的情况下,props: true您可以将函数传递给选项,而不是使用来指定route props选项:

routes = [{
  path: '/word/:id',
  component: Word,
  props: castRouteParams
}];

function castRouteParams(route) {
  return {
    id: Number(route.params.id),
  };
}
Run Code Online (Sandbox Code Playgroud)

实时示例:https : //codesandbox.io/s/8kyyw9w26l(单击“转到测试/ 3”链接)

  • 我不理解您的评论,对不起。但这对我来说似乎是一个不同的问题。 (2认同)