undefined (reading 'getters') di Vue.js

jadi saya lagi belajar dari video kak hilman yang tentang single page vuejs tapi di awal pertengahan ada error yang sudah di cari solusinya tapi belom ketemu

ini untuk state.js
export default {
    membersState: [
        {
            id: 1,
            name: 'man',
            point: 10,
            img: 'https://docs.vuejs.id//images/logo.png'
        },
        {
            id: 2,
            name: 'woman',
            point: 20,
            img: 'https://docs.vuejs.id//images/logo.png'
        },
        {
            id: 3,
            name: 'stickerdev',
            point: 30,
            img: 'https://docs.vuejs.id//images/logo.png'
        },
    ],
}

getter.js

export default{
    membersState: state => {
        return state.membersState
    }
}

main.js
...

new Vue({
  el: '#app',
  store,
  components: { App },
  template: '<App/>',
})

index.js
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)

import state from './state'
import getters from './getters'
import mutations from './mutations'
import actions from './actions'

export default new Vuex.Store({
    state,
    getters,
    mutations,
    actions
})

MainView.vue
<script>
    import { mapGetters } from 'vuex'

    export default{
        computed: {
            ...mapGetters([
                'membersState'
            ])
        },
    }
</script>

sudah mengikuti cara dari kak hilman tapi selalu ada error di log 
Cannot read properties of undefined (reading 'getters')

apakah versi dari depedensi juga mempengaruhi? atau ada solusi yang lain?
avatar yunianrezky

@yunianrezky

28 Kontribusi 10 Poin


Jawaban Terpilih

Error "Cannot read properties of undefined (reading 'getters')" ini biasanya disebabkan oleh pemanggilan getters yang salah.
Pada kode MainView.vue, kode 'mapGetters' tidak ditemukan. Kode tersebut berfungsi untuk mem-map state dan getters yang ada pada store.
Untuk memperbaikinya, tambahkan kode import mapGetters dari vuex:
import { mapGetters } from 'vuex'
Lalu, gunakan mapGetters dalam objek computed:
computed: {
  ...mapGetters([    'membersState'  ])
},
Pastikan juga bahwa versi Vuex yang digunakan sesuai dengan versi Vue.js yang digunakan.
avatar mangkirno

@mangkirno

6 Kontribusi 10 Poin

Jawaban

Error "Cannot read properties of undefined (reading 'getters')" ini biasanya disebabkan oleh pemanggilan getters yang salah.
Pada kode MainView.vue, kode 'mapGetters' tidak ditemukan. Kode tersebut berfungsi untuk mem-map state dan getters yang ada pada store.
Untuk memperbaikinya, tambahkan kode import mapGetters dari vuex:
import { mapGetters } from 'vuex'
Lalu, gunakan mapGetters dalam objek computed:
computed: {
  ...mapGetters([    'membersState'  ])
},
Pastikan juga bahwa versi Vuex yang digunakan sesuai dengan versi Vue.js yang digunakan.
avatar mangkirno

@mangkirno

6 Kontribusi 10 Poin

  • untuk memastikan versi vuex sesuai dengan versi vue.js kita bagaimana ya kak? saat ini saya pake vue 2.7 dan vuex 4.0.2 - @yunianrezky
  • makasih kak sudah di ingatkan untuk versi dari vuex nya - @yunianrezky


what version of vuex works with vue 2?

Which one should I use and what's compatible with Vue 2.0? Both Vuex 1.0 and 2.0: fully support both Vue 1.0 and 2.0.

avatar yunianrezky

@yunianrezky

28 Kontribusi 10 Poin


Error "Cannot read properties of undefined (reading 'getters')" biasanya terjadi karena pemanggilan properti atau metode dari objek yang tidak didefinisikan atau "undefined". Dalam hal ini, properti atau metode "getters" tidak didefinisikan pada objek yang dicoba diakses.

Untuk memperbaikinya, pastikan objek tersebut didefinisikan dan memiliki properti atau metode yang dicoba diakses sebelum dipanggil. Jika masih mengalami kesalahan, pastikan bahwa objek tersebut memiliki properti atau metode yang dicari dan bahwa sintaks pemanggilannya benar.
Sebagai alternatif, gunakan operator "typeof" untuk memeriksa tipe data dari objek sebelum mengakses properti atau metodenya. Misalnya:

if (typeof myObject !== "undefined" && typeof myObject.getters !== "undefined") {
  // Access myObject.getters here
}


avatar adamajalah27

@adamajalah27

10 Kontribusi 9 Poin


Login untuk gabung berdiskusi