javascript – 我是否总是需要从redux中间件返回一个值?
作者:互联网
在redux docs中给出的示例中,似乎总是从中间件返回一些东西.但是,当我打电话给下一个(动作)并且没有返回任何东西似乎一切正常.
在redux source中,似乎是调用每个中间件的返回值.
这让我相信它提供了一种在所有中间件运行后运行调度的可选方法.
有人可以确认我们是否必须始终从中间件返回值,如果是这样,为什么?
解决方法:
我其实是tweeted about this just the other day.
默认情况下,store.dispatch()方法返回传入的操作.由于中间件管道包装了dispatch(),每个中间件都可以改变通过管道传递的值,并改变传递的返回值背部.
许多中间件依赖于能够自己返回值,或者使用返回值返回.例如,redux-thunk返回从thunk函数返回的任何内容,这通常用于能够从thunk返回promise,以便您可以链接dispatch(somePromiseThunk()).then(()=> { }).
如果中间件调用next(action)但实际上没有从next()返回值,则可能会破坏这些功能.具体行为取决于您设置的中间件,以及如何订购它们.
因此,“正确”的做法是每个Redux中间件都应该默认返回next(action),除非它明确想要改变返回值行为.这确保了最佳兼容性和组合中间件的能力.
标签:javascript,reactjs,redux,react-redux 来源: https://codeday.me/bug/20191006/1860667.html