javascript - Vue.js 路由器链接参数未定义
问题描述
在我的 vue.js 中,我在 navigation.vue 中使用参数将其传递到下一页,以便用于动态路由,如下所示:
<router-link tag="p"
:to="{name: 'Main', params: {category: link.linkCategory}}"
:key="link.linkCategory">
以下是路由器 index.js 的一部分:
export default [
{
path: '/origin/:category',
name: 'origin',
component: () => import('@/views/origin/origin.vue'),
props: true,
children: [
{
path: '',
name: 'Main',
props: true,
component: () => import('@/views/origin/Main.vue')
}
所以基本上我将“类别”值作为动态路由的参数传递。但是,每当我尝试通过路由器链接访问时,我都会在控制台中收到此警告消息:
[vue-router] 缺少命名路由“Main”的参数:要定义预期的“类别”
为方便起见,所有 linkCategory 值都存储在单独的链接 js 文件中,并且当单击每个链接时,路由确实会获取这些值。所有页面的路由工作正常,但控制台警告非常烦人......
我知道在访问路由器链接之前该参数将为空,但我需要一种方法来绕过警告。我什至尝试了“v-if”方法,但在这里没有用。
请为我所做的错误事情修复我的代码。
解决方案
如果您将to
属性更改为不同的格式,如下所示会发生什么?
<router-link tag="p"
:to="`/origin/${link.linkCategory}`"
:key="link.linkCategory"
推荐阅读
- ruby - 为什么 break 不能让我摆脱 ruby -n 循环?
- node.js - 如何从 AWS RDS 连接到没有“数据库”名称的 PostgreSQL 数据库
- expect - Expect 无法识别循环中的命令“超时”
- python - 如何从张量流中的向量构造成对差异的平方?
- amazon-web-services - 如何配置 CloudFront 以根据路径前缀将请求路由到负载均衡器或 S3?
- php - “createSession”错误(OpenTok php sdk)
- go - 带有环境变量的 Go 中的 exec.Command()
- laravel - Laravel 由 2 个不同的模型嵌套 foreach
- r - 错误:preNode [[1]] 中的错误:R 中的下标超出范围
- php - 处理从表单输入到 SQL 的空值