Redux: это будет то же самое состояние после того, как я изменю свойство элемента в состоянии? - PullRequest
0 голосов
/ 01 марта 2020

Я работаю над файлом редуктора, который выглядит следующим образом:

export default (state = [], action) => {
  let index

  switch (action.type){

    case "ADD_QUOTE":
     return [...state,action.quote]

    case "REMOVE_QUOTE":
      return state.filter(q=>q.id !==action.quoteId)

    case "UPVOTE_QUOTE":

       index = state.findIndex(quote => quote.id === action.quoteId);
       let quote = state[index];

       return [
         ...state.slice(0, index),
         Object.assign({}, quote, { votes: quote.votes += 1 }),
         ...state.slice(index + 1)
       ];


    default: 
    return state
}
  }

У меня есть два способа реализовать регистр UPVOTE_QUOTE, первый в приведенном выше коде, а второй выглядит следующим образом это:

...
    case "UPVOTE_QUOTE":
       let quote = state.find(q=>q.id===action.quoteId)
       quote.votes +=1
       return state
...

Интересно, в чем разница. И во второй ситуации я не уверен, если я изменю свойство votes в этом одном элементе quote в state, когда я верну state, будет ли это состояние с новым quote? И это state оригинал state или новый state, который относится к новому месту? Очень смущен ...

1 Ответ

1 голос
/ 01 марта 2020

Первый вариант выглядит правильным. Вторым вариантом будет изменение состояния.

Эти ссылки, которые могут помочь в дальнейшем объяснении: Последствия изменения статуса Redux и Почему не может быть изменено состояние ....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...