Redux: реквизиты не меняются при нажатии кнопки - PullRequest
0 голосов
/ 18 декабря 2018

Я использую реагировать с избыточностью, и у меня есть 2 кнопки.

OnClick одной кнопки вызовет функцию:

onClick = {() => props.myFunction()}

myFunction вернет значение 100 склавиша 'MyProperty'

Моя вторая кнопка просто отображает самое последнее значение MyProperty:

onClick = {() => alert(props.MyProperty)}

Я подключил myFunction, а также MyProperty ксоставная часть.Но когда я нажимаю на первую кнопку, затем нажимаю на 2-ю кнопку, она показывает начальное значение MyProperty, а не обновленное значение '100'.

myFunction возвращает {type: "MY_FUNCTION", MyProperty: 100}

И в моем редукторе я делаю:

case "MY_FUNCTION":
return {
 MyProperty: action.MyProperty,
 ...state
}

Что я могу делать не так?

1 Ответ

0 голосов
/ 18 декабря 2018
state = { x: 1 }

{ x: 2 , ...state } ====> { x: 1 }  // x will never be updated as it gets replaced by what was in the previous state
{ ...state, x: 2  } ====> { x: 2 }

"Когда несколько объектов распространяются и некоторые свойства имеют одинаковые ключи, как рассчитывается окончательный набор значений? Правило простое: последнее свойство распространения перезаписывает более ранние свойства, имеющие один и тот же ключ."https://dmitripavlutin.com/object-rest-spread-properties-javascript/

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