Массив в параметре маршрута вызывает предупреждение "Ожидается, что он не повторится" - PullRequest
0 голосов
/ 05 ноября 2019

Когда я пытаюсь создать router-link с массивом в качестве параметра, ссылка работает, но я получаю следующее предупреждение:

отсутствует параметр для именованного маршрута "запуск-запуск": ожидается "файлы "не повторяться, но получил ["aaa"]

router.js

...
{
  path: '/start-run/:config?/:files?',
  name: 'start-run',
  component: StartRun,
  props: true
},
...

file.vue

...
<router-link :to="{name: 'start-run', params: { config: 'test', files: ['aaa'] }}">...</router-link>
...

Я не нашел документации, чтобы исправить это предупреждение.

1 Ответ

1 голос
/ 06 ноября 2019

Я считаю, что сообщение об ошибке приходит от path-to-regexp версии 1.7.0, которая используется Vue Router:

https://github.com/pillarjs/path-to-regexp/blob/v1.7.0/index.js#L185

Проблема заключается в том, что массив обрабатывается как множественныйзначения, но параметр в вашем пути не поддерживает несколько значений.

Неясно, чего вы пытаетесь достичь, передав массив в files. Заданный вами маршрут маршрута использует суффикс ? для :files?, что делает его необязательным, но не допускает массив. Возможно, вы имели в виду :files* или :files+ вместо этого? Или, может быть, вы просто хотите передать первый элемент в массиве?

...