Перебрать state в mutations через foreach или map

73
25 января 2022, 22:30

В Vuex есть стейт вида

state: {
  messageUserName: '',
  messageUserEmail: '',
  messageUserPhone: '',
  messageTitleVal: '',
  messageTextVal: '',
},

и мутаторы вида

mutations: {
  setMessageUserName: (state, messageUserName) => 
    state.messageUserName = messageUserName,

Как написать мутатор, пробегающийся по стейту и приводящие его значения к пустой строке ?

Answer 1

Для плоского объекта состояния (как в вопросе):

const store = new Vuex.Store({ 
  state: { 
    messageUserName: 'a', 
    messageUserEmail: 'b', 
    messageUserPhone: 'c', 
    messageTitleVal: 'd', 
    messageTextVal: 'e', 
  }, 
  mutations: { 
    TO_EMPTY_STRING(state, fields = []) { 
      if (!fields.length) 
        fields = Object.keys(state);  
      fields.forEach(k => state[k] = '');  
    } 
  },  
});  
 
console.log(store.state);  
store.commit('TO_EMPTY_STRING');  
console.log(store.state); 
<script src="https://unpkg.com/vue/dist/vue.min.js"></script>  
<script src="https://unpkg.com/vuex/dist/vuex.min.js"></script> 

Если же целевые свойства будут вложены, то потребуется немного простой рекурсии по объектам (которую лучше реализовать локальной хелпер-функцией в той же мутации).

READ ALSO
Удалить родительский елемент

Удалить родительский елемент

Все привет, помогите разобратьсяСуть, пишу ToDoList и столкнулся с проблемой удаления элементов списка

131
Прокрутка для элемента [закрыт]

Прокрутка для элемента [закрыт]

Хотите улучшить этот вопрос? Переформулируйте вопрос так, чтобы он был сосредоточен только на одной проблеме

125
Создание сложных веб-приложений

Создание сложных веб-приложений

Ниже есть картинка сайтаКак такое создается? С помощью каких средств? Знаю, что такое можно сделать с помощью WebAssembly, но данный сайт сделан...

92
Где посмотреть значения кодов child_process.spawn?

Где посмотреть значения кодов child_process.spawn?

Я написал простой класс для child_processspawn

118