我是否总是需要从redux中间件返回一个值?

Dan*_*ger 10 javascript reactjs redux react-redux

redux文档中给出的示例中,似乎总是从中间件返回一些东西.但是,当我打电话next(action)并返回时,一切似乎都正常.

redux源中,它似乎在调用dispatch每个中间件的返回值.

这让我相信它提供了一种在所有中间件运行后运行调度的可选方法.

有人可以确认我们是否必须始终从中间件返回值,如果是这样,为什么?

mar*_*son 15

我实际上在前几天发了推文.

store.dispatch()默认情况下,该方法返回传入的操作.由于中间件管道包装dispatch(),每个中间件都可以在路上改变通过管道传递的值,并更改传回的返回值.

许多中间件依赖于能够自己返回值,或者使用返回值返回.例如,redux-thunk返回从thunk函数返回的任何内容,这通常用于能够从thunk返回promise以便链接dispatch(somePromiseThunk()).then( () => {}).

如果中间件调用next(action)但实际上没有从中返回值next(),则可能会破坏这些功能.具体行为取决于您设置的中间件,以及如何订购它们.

因此,"正确"的做法是默认情况下每个Redux中间件应该 return next(action)默认,除非它明确想要改变返回值行为.这确保了最佳兼容性和组合中间件的能力.