redux 中dispatch一个方法 return后的值去哪了?

如题,刚刚接手一个React+redux项目,之前接手项目的人离职了.走之前跟我讲了讲redux,可是用起来还是不明白
比如我用dispatch发出了一次网络请求,然后将返回的数据在成功的回调里返回了

export function Success(List, type, result, subscribeTime ){
    return {
        type: SUBSCRIBE_SUCCESS,
        IdList: List,
        subscribeType: type,
        result: result
    };
}

它将会return到哪里?
我看store.js里面也没有定义SUBSCRIBE_SUCCESS这个action的值将返回到哪里...我consolelog出store里面的state可是里面是没有成功后的数值的
不知道能不能看懂我说的...

阅读 21.8k
4 个回答

我理解为 dispatch 就是发布,他接受一个 object 发送给 reducer
你发布的object 由 action 决定
所以action 是 return 一个 特定的 object
你在里面 请求等异步操作 是使用了一个中间件实现的 thunk
但最终的你的action 还是返回一个 object
object 最终给到 reducer ,
一般根据 type 区分 改变 reducer 也就是store
一般看到的就是一个switch (action.type)
当然你也可以换成 if else 也可以不用type 区分
因为react 是数据驱动,所以 view 就会相应变化

另外一个dispatch 可以触发多个 reducer 改变

比如你一个 click 事件,“我要获取帖子列表”
dispatch(去服务器拿)

action 一个纯函数,
服务器给我数据,拿到之后
return 一个{type:拿到数据了,data:[...]}

然后reducer A 拿到数据了,好!
把store.post.push(action.data)

reducer B 我也关心这个信息
store.hasnewpost = true

手机打的,估计没说清楚...

我是这么认为的dispatch给store,store更改之后,影响组件view,然后改变视图。
action是在reducer里的吧。
最近在看real-world示例,那个讲的比较好了。

http://segmentfault.com/a/1190000004159194
上面有一个原文地址很不错。中文地址翻译了一部分。楼主的问题。return一个type 这个type时关键。在reduce里可以通过type拿到值。继而更改state

字面回答楼主问题的话,return的东西将交由reducer处理

推荐问题
宣传栏