Не уверен, что вы уже получили свой ответ, старое состояние передается редукторам вместе с действием, предпринимаемым по нескольким причинам. Причина, по которой упоминается в этой статье, заключается в том, что если состояние не обновляется, то старое состояние может быть просто возвращено и Redux (уверенный в том, что объект не изменился, потому что предполагается, что если бы это было так, то строгое равенство не прошло бы) знает, что ему не нужно ничего обновлять.

Вторая причина заключается в том, что в случае с чистыми функциями мы ожидаем, что функция всегда будет возвращать одни и те же выходные данные при определенных параметрах и никогда не будет возвращать другое значение при одних и тех же входных данных (аргументах). Итак, если мы представим, что все наше состояние для приложения было {count: 0}, и у нас есть действие под названием «PLUS_ONE», которое добавляет 1 к ключу count, наша чистая функция может принимать в качестве параметров plusOne({count: 0}) и всегда return {count: 1}, если он принял plusOne ({count: 10}), он всегда всегда будет возвращать {count: 11}.

Итак, вы можете подумать, что мы могли бы написать функцию, которая просто принимает в качестве аргументов plusOne(0) и возвращает 1, или принимает в качестве аргумента plusOne(10) и возвращает 11, и это все равно было бы чистым, вы были бы правы, что это чистое ... Но тогда мы, скорее всего, будем делать что-то, что изменит объект состояния, чтобы обновить значение счетчика, например: state.count = addOne(state.count) — это побочный эффект, и, как указал автор, Redux подумает, что состояние не изменилось, потому что ссылка на объект состояния не изменилась.

Я не уверен, ответил я или нет на ваш вопрос. По сути, несмотря на то, что в статье говорилось о том, что при передаче всего состояния через редюсер, если состояние заменяется новым состоянием, это очень и очень быстрая операция для проверки чистости редукторов!==