Я понимаю, что это основной вопрос, но мне не удалось найти ответ в другом месте.
Является ли store.dispatch
синхронный или асинхронный в Redux
?
Если это асинхронно, есть ли возможность добавить обратный вызов после того, как действие было распространено, как это возможно с помощью React
?
getState()
), ноmapStateToProps
не обновляется . Тоthis.props.value
же самое старое значение, аgetState().value
новое - codeandbox.io/s/reactredux-forked-0m5eo?file=/Page.jsОтветы:
AFAIK, диспетчерское действие синхронно. В случае, если вы хотите обратиться к асинхронному вызову, вы можете использовать промежуточное программное обеспечение thunk в redux, где отправка предоставляется как функция обратного вызова, которую вы можете вызывать по своему усмотрению. Для получения дополнительной информации ознакомьтесь с этим ответом на SO от самого автора: Как отправить действие Redux с таймаутом?
источник
Никто не знает лучше, чем сам код . =) Как видите
dispatch
абсолютно синхронно. Единственное предупреждение здесь заключается в том, что storeenhancers
может (и делает) заменяющийdispatch
метод. Например, взгляните наapplyMiddleware
Enhancer , он позволяет вам подключать промежуточное ПО, заменяяdispatch
метод по умолчанию его собственной реализацией. Хотя я никогда не видел Redux,enhancer
который бы действительно удалил синхронный характер файловdispatch
.источник
code itself
ссылке, что было бы мертвыми ссылками из-за аспекта коммитов «постоянная ссылка».