Ошибка с элементом VueJs router-link
Каждый раз, когда я нажимаю на один из моих элементов vuejs router-link в панели навигации моей страницы app.blade.php, я получаю сообщение об ошибке на своей консоли, как показано ниже
[Vue warn]: Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or computed property based on the prop's value. Prop being mutated: "to"
found in
---> <RouterLink>
<Root>
Приведенный ниже код показывает, как я реализовал свои роутер-ссылки внутри панели навигации.
<ul class="navbar-nav ml-auto">
<!-- Authentication Links -->
@guest
<li class="nav-item">
<a class="nav-link" href="{{ route('login') }}">{{ __('Login') }}</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{{ route('register') }}">{{ __('Register') }}</a>
</li>
@else
<li class="nav-item" id="navbarDropdown" class="nav-link" role="button" aria-haspopup="true" aria-expanded="false" style="padding: 15px; ">
<router-link style="color:black;" :to="{ name: 'home' }">Menu<i class="fa fa-home" style="margin-left:8px;"></i></router-link>
</li>
<li class="nav-item" id="navbarDropdown" class="nav-link" role="button" aria-haspopup="true" aria-expanded="false" style="padding: 15px;">
<router-link style="color:black;" :to="{ name: 'orders' }">Orders <i class="fa fa-coffee" style="margin-left:8px;"></i></router-link>
</li>
<li class="nav-item" id="navbarDropdown" class="nav-link" role="button" aria-haspopup="true" aria-expanded="false" style="padding: 15px;">
<router-link style="color:black;" :to="{ name: 'cart' }">Cart <i class="fa fa-shopping-cart" style="margin-left:8px;"></i></router-link>
</li>
Может кто-нибудь объяснить, почему я получаю эту ошибку?
1 ответ
Вы пытаетесь изменить свой props
элемент внутри Vue компонента. использование data
для этих целей.
Надеюсь, это кому-нибудь поможет.
Моя проблема заключалась в том, что я зарегистрировал глобальный миксин в main.js
со следующей функцией:
Vue.mixin({
methods: {
to(name, params) {
this.$router.resolve({ name, params });
},
},
});
Просто переименуйте или удалите эту конфигурацию, и все ошибки RouterLink исчезнут.