Как я могу изменить ответ json и сохранить его в состоянии?

#vue.js #vuejs2 #vuex

#vue.js #vuejs2 #vuex

Вопрос:

Так, например, мой ответ json выглядит так:

 "name": "John"
"value": "5"

 

Затем я передаю его в свое состояние

commit("SET_USER", response.data.user);

Но, если name == «John», я хочу, чтобы значение было равно 10 и передавало его в mutation. Возможно ли это сделать? Я могу получить доступ к значению следующим образом response.data.user[0].value

 if(response.data.user[0].name == "John") {
              response.data.user[0].value == "10"
            }
            commit("SET_USER", response.data.users); // <-- state.cards
          })
 

Комментарии:

1. Вопрос в том, как написать оператор if или что-то еще?

2. Я полагаю, что это оператор if, я попытался сравнить user [0].значение с user [0].name, а затем установить значение, но я не знаю, в какое место я должен поместить это. Я продолжал получать значение ошибки none.

Ответ №1:

Вы могли бы использовать map функцию :

 commit("SET_USER", response.data.user.map(item=>{
           if(item.name=='John'){
              item.value=10
           }
    return item;
}));
 

если вы уже знаете индекс :

 let users=response.data.user;
if(users[0].name == "John") {
              users[0].value = 10
            }
commit("SET_USER", users);