반응형
TypeError: 정의되지 않은 속성 'getters'를 읽을 수 없습니다.
Vuex 스토어를 참조하는 기본적인 Vue 컴포넌트를 테스트하려고 합니다.Vue의 예(https://vue-test-utils.vuejs.org/guides/using-with-vuex.html#mocking-getters)에서 T까지)를 따라한 것 같았는데 효과가 없는 것 같습니다.
제목에 기재되어 있는 에러가 표시됩니다.
const localVue = createLocalVue()
localVue.use(Vuex)
describe('Navbar.vue', () => {
let store: any
let getters: any
beforeEach(() => {
getters: {
isLoggedIn: () => false
}
store = new Vuex.Store({
getters
})
})
it('renders props.title when passed', () => {
const title = 'Smart Filing'
const wrapper = shallowMount(Navbar, {
propsData: { title },
i18n,
store,
localVue,
stubs: ['router-link']
})
expect(wrapper.text()).to.include(title)
})
})
수업 구성 요소를 사용하고 있는데 그게 관련이 있는 건 아닐까요?
@Component({
props: {
title: String
},
computed: mapGetters(['isLoggedIn'])
})
export default class Navbar extends mixins(Utils) {}
잘 부탁드립니다.
여기서 "getters"가 올바르게 할당되지 않았습니다.
beforeEach(() => {
getters: {
isLoggedIn: () => false
}
store = new Vuex.Store({
getters
})
})
그럴 것 같네요.getters = {...
보다는getters: {...
왜냐하면 당신의 인수는 각각 함수이지 객체가 아니기 때문입니다.
서류에 정확하게 기재되어 있는 것을 확인할 수 있습니다.
행운을 빕니다.
알아냈어.
컴포넌트에서 getter를 선언할 때 사용할 변수를 정의해야 합니다.
@Component({
props: {
title: String
},
computed: mapGetters(['isLoggedIn'])
})
export default class Navbar extends mixins(Utils) {
isLoggedIn!: boolean <== I did not have this before.
...
}
편집: 또한 테스트에서 실제로 모의 게터를 사용하지 않았기 때문에 가게를 조롱할 필요도 없습니다.컴포넌트에 해당 변수를 선언하기만 하면 됩니다.
이 에러 메시지는 같은 모듈을 Import하고 있는2개의 다른 스토어인스턴스를 로드하려고 했을 때 표시됩니다.기본적으로 Vuex는 단일 저장소를 가정합니다.뭔가 이상한 일이 일어나고 있었고, 이 오류가 그 결과였다.
언급URL : https://stackoverflow.com/questions/54526637/typeerror-cannot-read-property-getters-of-undefined
반응형
'programing' 카테고리의 다른 글
프로그래밍 방식으로 마운트된 Vue 구성 요소에서 방출된 이벤트 듣기 (0) | 2022.07.26 |
---|---|
왜 sun.misc는?안전하지 않은 것이 존재하며, 현실에서 어떻게 사용될 수 있을까요? (0) | 2022.07.26 |
Vue.js에서 스크롤 다운 이벤트에서 네비게이션 페이드인 및 페이드아웃을 하는 방법YOffset = 0 (0) | 2022.07.26 |
vuejs의 html 태그에 dir rtl 특성 추가 (0) | 2022.07.26 |
Vuex 상태를 업데이트하면 LokiJS 데이터도 변경됩니다. 이유가 무엇입니까?Vuex / LokiJs (0) | 2022.07.26 |