내 앱의 main.js
에서 회사 API를 가져 와서 첫 번째를 선택하는 작업을 실행합니다. 이 액션은 매번 디스패치되지만 여기서 실패하지는 않습니다.Vuex 계산 된 속성은 경로가 변경되어 다시 변경된 경우에만 업데이트됩니다.
new Vue({
el: '#app',
store,
router,
render: h => h(App),
created: function() {
this.$store.dispatch('getCompaniesAndSelectFirst');
}
})
내가 선택한 회사에 속한 캠페인을 검색해야하는 또 다른 관점에서
, 그래서 나는 VUE-자원과 마운트에서이 작업을 수행.
mounted: function() {
if (this.selectedCompanyId) {
this.$http.get('Campaigns', {params: {companyId: this.selectedCompanyId}}).then(response => {
// success callback
this.numbersTableData = response.body;
}, response => {
// error callback
});
}
}
selectedCompanyId
은 Vuex에서 선택한 회사의 ID를 반환하는 계산 된 속성입니다.
selectedCompanyId: function() {
return this.$store.getters.selectedCompanyId;
}
문제는이 장전 처음이다 경우 selectedCompanyId
이 시점에서 정의되지이다.
페이지를 새로 고치면 selectedCompanyId
은 아직 정의되지 않았기 때문에 내 요청이 실패합니다.
이보기에서 응용 프로그램을 열면 selectedCompanyId
은 정의되지 않고 get 요청이 실패하지만 다른보기로 연결 한 다음 selectedCompanyId
이로드되어 요청이 성공한 경우
다른보기에서 응용 프로그램을 연 다음보기로 라우팅하면 selectedCompanyId
이 정의되고 get 요청이 성공합니다.
내가 알기로 이것은 기업을 얻고 첫 번째 것을 선택하는 요청을 받기 위해 시간이 필요하기 때문입니다.
어떻게 해결할 수 있습니까? 내가하려는 일을하는 더 좋은 방법이 있습니까?
로드 된 데이터 상태를 기반으로 경로를 보호해야합니다. https://router.vuejs.org/en/advanced/data-fetching.html – Phil
@ Phil을 참조하십시오. 어떻게해야합니까? 상태가로드되어 있지 않으면 내가 할 수있는 것으로 만 경로가 표시되지 않습니다.로드 될 때까지 계속 확인하려면 어떻게해야합니까? – Suren
내가 링크 된 문서를 읽었습니까? _ "탐색하기 전에 가져 오기"라는 제목의 섹션이 있습니다. _ – Phil