vuex 저장소에 데이터의 json을 로드하고 구성 요소에 액세스
콘텐츠의 JSON 파일을 vuejs 앱에 로드하여 컴포넌트에서 액세스하려고 합니다.API를 생성하여 vuex 스토어에 json을 로드할 수 있습니다.
import Vue from 'vue';
const Http = new Vue();
export function getData() {
return Http.$http.get('./app/assets/content/en_uk.json')
.then(response => Promise.resolve(response.data))
.catch(error => Promise.reject(error));
}
및 액션
export const getSiteContent = ({commit}) => {
api.getData().then(data => {
commit('siteContent', data);
});
};
메인 vue 인스턴스의 생성된 함수로 getSiteContent를 실행합니다.
export default new Vue({
el: '#root',
store,
router,
created() {
getSiteContent(store);
},
render: h => h('router-view')
});
크롬의 vue 디버깅 도구를 사용하면 스토어를 볼 수 있습니다.
export const state = {
isSearching: false,
searchQuery: '',
siteData: {},
filteredComponents: [],
hasResults: false,
activeComponent: null
};
siteData로 갱신됩니다.
이것은 json의 일부입니다.
{
"global": {
"project_name": {
"text": "Project title"
},
"search": {
"form_placeholder": {
"text": "Search..."
},
"no_results": {
"text": "Sorry no results for '{0}' was found"
},
"search_text": {
"text": "You are searching for '{0}' and there are {1} found"
}
}
}
}
접속하려고 하면
computed: {
...mapGetters(['siteData']),
mumbo () {
return this.siteData.global.project_name;
}
}
에는 ★★★★★★★★★★★★★★★★★★★ 등{{mumbo}}
정의되지 않은 project_name 속성을 읽을 수 없습니다.
siteData.global을 반환하도록 설정해도 실패하지 않기 때문에 시간문제인 것 같습니다.
제가 잘못하고 있는지, 아니면 이 작업을 수행하기 위한 연결을 놓치고 있는지 모르겠습니다.
가 Vue의 입니다.siteData
데이터를 로드하는 동안 계산된 속성에 대한 정보를 제공합니다.일일 ~일도 although although although although 。siteData
처음에 이며, 접속을 .접속하려고 합니다.siteData.global.project_name
siteData
" " " 가 .global
데이터가 아직 로드되지 않았을 때 말이죠.오류를 방지하려면 다음과 같은 체크 표시를 포함해야 합니다.
mumbo () {
return this.siteData.global ? this.siteData.global.project_name : 'Loading...';
}
해결책을 설명하기 위해 코드를 기반으로 한 간단한 JSFiddle을 소개합니다.
언급URL : https://stackoverflow.com/questions/40635197/load-json-of-data-into-vuex-store-and-access-in-component
'programing' 카테고리의 다른 글
vuex 저장소에서 Axios 인스턴스 속성을 사용하는 방법 (0) | 2022.07.17 |
---|---|
구조물 또는 유니언의 'unsigned temp:3'은 무엇을 의미합니까? (0) | 2022.07.17 |
Jest + Vue - SyntaxError:예기치 않은 토큰 < (0) | 2022.07.17 |
포인터를 사용하여 단일 연결 목록에서 항목 제거 (0) | 2022.07.17 |
기능 선언을 위한 대체(K&R) C 구문과 프로토타입 (0) | 2022.07.17 |