RouterLink 특성 읽기 전용
나는 Vue.js의 VueRouter부터 시작해서 나는 이런 실수를 하고 있다.
[Vue warn]: $attrs is readonly.
found in
---> <RouterLink>
<SecondNav> at resources\assets\js\modules\livegame\player\SecondNav.vue
<Player> at resources\assets\js\modules\livegame\player\Player.vue
<Root>
[Vue warn]: $listeners is readonly.
found in
---> <RouterLink>
<SecondNav> at resources\assets\js\modules\livegame\player\SecondNav.vue
<Player> at resources\assets\js\modules\livegame\player\Player.vue
<Root>
나는 내가 할 수 있는 모든 것을 줄였고 그 결과 문제는 라우터에만 있다.문서대로 했는데 어디가 문제인지 전혀 모르겠어.다음은 내 구성 요소:
세컨드나브뷰
<template>
<div class="row second-top-nav">
<div class="col-md-offset-1 col-md-11">
<ul class="nav">
<li>
<router-link to='/public/livegame/player/history'>
History
</router-link>
</li>
</ul>
</div>
</div>
</template>
<script>
export default {}
</script>
플레이어.vue
<template>
<div>
<second-nav></second-nav>
</div>
</template>
<script>
import SecondNav from './SecondNav';
export default {
components: {
SecondNav
},
}
</script>
라우터.js
import Vue from 'vue';
import VueRouter from 'vue-router';
Vue.use(VueRouter);
import History from './history/History';
export default new VueRouter({
mode: 'history',
routes: [
{path: '/public/livegame/player/history', component: History, name: 'player_history'},
],
linkActiveClass: "active", // active class for non-exact links.
});
시작점 플레이어.js
window.Event = new Vue();
import Vue from 'vue';
import router from './router'
import Player from './Player.vue';
let vm = new Vue({
el: '#player',
router,
components: {
Player
},
});
window.vm = vm;
어디가 문제인지, 무엇을 잘못하고 있는지 모르겠다.애플리케이션의 모든 것이 문제 없이 작동하는 것처럼 보이지만, 이러한 알림은 모든 것이 제대로 된 것처럼 보이지 않는다.나는 Vue.js 버전 2.5.16과 VueRouter 버전 3.0.1을 사용하고 있다.
Vue 인스턴스를 여러 개 사용하면 이 문제가 발생할 수 있음...
내가 이 경고를 고쳤다.Vue는 $attors가 읽기 전용이라고 경고한다....에서 발견되다.
라인을 제거하여:import Vue from 'vue'
보관 중:import VueRouter from 'vue-router'
그것이 고쳐진 이유: vue는 두 번 로드되고 있었다.Vue는 VueRouter의 꼭대기에서 수입된다.VueRouter 이전에 수입할 필요는 없다.
Vue 인스턴스를 여러 개 보유하면 이 문제가 발생할 수 있다.당신 안에player.js
파일럿 you do you
window.Event = new Vue();
그 직후:
let vm = new Vue({ ... })
첫 번째 항목을 제거해 보십시오.new Vue
도움이 될 것입니다호출을 통해 라우터를 전체적으로 등록하고 있으므로Vue.use(VueRouter)
두 개의 vue 인스턴스가 있는데, 둘 다 라우터를 가지고 있다.두 번째 인스턴스가 마운트되고 라우터를 등록하려고 하면 첫 번째 인스턴스가 이미 등록되었으므로readonly
착오
또한import
인스턴스는 파일 맨 위에 호스트되므로 선언하는 경우에도window.Event = new Vue
상위에, 현실적으로import
인스턴스가 변수 선언 및 할당 전에 발생함.
참조URL: https://stackoverflow.com/questions/49936163/routerlink-attrs-is-readonly
'programing' 카테고리의 다른 글
reaction-remedx가 저장소를 컨텍스트에 전달하는 이유 (0) | 2022.03.12 |
---|---|
Vuetify에 특정 숫자 입력 구성 요소가 있는가? (0) | 2022.03.12 |
urllib, urllib2, urllib3 및 요청 모듈의 차이점은 무엇인가? (0) | 2022.03.12 |
Electronic Menu 클릭() 이벤트를 사용하여 Vue 경로를 변경하려면 어떻게 해야 하는가? (0) | 2022.03.12 |
리디렉션 후 구성 요소의 이.props.location에 액세스할 수 없음 (0) | 2022.03.12 |