Невозможно создать правильную ссылку с помощью vue router-link - PullRequest
0 голосов
/ 26 мая 2019

Я использую тег vue rounter-link для перехода на другую страницу. Моя проблема в том, что он, кажется, не перемещается на другую страницу. Я думаю, что проблема заключается в параметрах роутера. У меня действительно blog_id как 2, но он всегда показывает текущую страницу blog_id, на которой я нахожусь.

Изначально у меня есть

<router-link v-bind:to="{name:'datascience-single', params: {blog_id: blog.blog_id}}">
    <i class="fa fa-cogs" aria-hidden="true"></i>
</router-link>

но потом я начал думать, что, возможно, он неправильно принимает blog.blog_id, поэтому я заменил его на фиксированное значение

        <li v-for="blog in blogs" v-bind:key="blog.id">
          <h1>{{blog.title}}</h1>
          {{blog.content}}
          <router-link v-bind:to="{name:'datascience-single', params: {blog_id: 2}}">
            <i class="fa fa-cogs" aria-hidden="true"></i>
          </router-link>
        </li>

Однако проблема остается прежней.

1 Ответ

0 голосов
/ 26 мая 2019

В этом ответе предполагается, что вы уже находитесь на том же маршруте, по которому вы идете.

При переходе по тому же маршруту не обновляются ваши компоненты.Мы привыкли, что всякий раз, когда мы переходим на другой URL, страница должна обновляться с помощью многостраничных сайтов.Однако маршрутизатор Vue обрабатывает это по-другому.Для маршрутизатора маршрут, например: /blogs/{id}, не меняется при обновлении id, мы все еще находимся на /blogs/{id}, но с другим параметром.

Чтобы обнаружить это изменение, мы можемпросто сделайте наблюдателя по параметру маршрута:

watch: {
    '$route.params.id': (id) => {
        // The route is the same, but our parameter changed.
    }
}
...