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

Diperbarui 1 tahun yang lalu

3 Jawaban:

Jawaban Terpilih

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

avatar mangkirno
@mangkirno

6 Kontribusi 10 Poin

Dipost 1 tahun yang lalu

Tanggapan

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

makasih kak sudah di ingatkan untuk versi dari vuex nya

<pre>what version of vuex works with vue 2?

Which one should I use and what's compatible with Vue 2.0? Both <strong>Vuex 1.0 and 2.0</strong>: fully support both Vue 1.0 and 2.0.</pre><div><br></div>

avatar yunianrezky
@yunianrezky

28 Kontribusi 10 Poin

Dipost 1 tahun yang lalu

<div>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.<br><br></div><div>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.</div><div><br>Sebagai alternatif, gunakan operator "typeof" untuk memeriksa tipe data dari objek sebelum mengakses properti atau metodenya. Misalnya:<br><br></div><pre>if (typeof myObject !== "undefined" &amp;&amp; typeof myObject.getters !== "undefined") { // Access myObject.getters here } <br></pre><div><br></div>

avatar adamajalah27
@adamajalah27

119 Kontribusi 40 Poin

Dipost 1 tahun yang lalu

Login untuk ikut Jawaban