Как подписаться в redux называется много раз - PullRequest
1 голос
/ 26 мая 2020

https://redux.js.org/basics/store#dispatching -действия

В этом случае функция unsubscribe вызывается один раз. Но консоль печатается слишком много раз. Как это произошло?

1 Ответ

1 голос
/ 26 мая 2020

Как написано в фрагменте кода

// Note that subscribe() returns a function for unregistering the listener

означает, что подписка на магазин возвращает только функцию, но в подписке вы распечатываете магазин каждый раз, когда он обновляется / изменяется, поэтому вы видят 7 консольных операторов из 1. первого console.log и остальных 6 операторов перед вызовом функции отписки.

И, согласно вашему вопросу, как подписка вызывается много раз => Это не вызов подписки,

const unsubscribe = store.subscribe(() => console.log(store.getState()))

В этой строке то, что мы сделали, передается функция обратного вызова, которая запускается каждый раз при изменении хранилища, а из следующих строк мы обновляем ее с dispatch, вы можете увидеть console.logs из функции обратного вызова.

...