Локальное изменение массива изменяет состояние в Store

Непосредственно сам Store


import loadMore from '../assets/js/loadMore.js'
export default {
state:{
    messages: [],
    messagesMain: []
},
mutations:{
    setMessage (state, payload) {
        state.messages = payload
    },
    setMessageMain (state, payload) {
        state.messagesMain = payload
    },
    loadMessages (state, payload) {
        state.messagesMain = [...state.messagesMain, ...payload] 
    }
},
actions:{
    setMessage ({commit}, payload) {
        commit('setMessage', payload)
    },
    setMessageMain ({commit}, payload) {
        commit('setMessageMain', payload)
    },
    loadMessages ({commit, getters}) {
        let res = getters.getMessageFilter.slice()
        commit('loadMessages', loadMore(res))
    }
},
getters:{
    getMessage (state) {
        return state.messages
    },
    getMessageFilter (state) {
        return state.messages.filter(mess => {
            return !mess.main
        })
    },
    getMessageMain (state) {
        return state.messagesMain
    }
  }
}

loadMore function

В данную функцию я передаю переменную полученную из State через getters. В самой функции я данную переменную присваиваю новому массиву так что бы они были независимыми, однако при изменении новой переменной меняется значение в State

export default function loadMore (res) {
let sm = [];
sm = res.slice()
const messages = [];

if (sm.length > 2){
    for (let i = 0; i < 2; i++){
        sm[i].main = true
        debugger
        messages.push(sm[i])
    }
    return messages
}else{
    for (let i = 0; i < sm.length; i++){
        sm[i].main = true
        messages.push(sm[i])
    }
    return messages
  }
}

Ответы (0 шт):