alibaba / fish-redux

An assembled flutter application framework.
https://github.com/alibaba/fish-redux
Apache License 2.0
7.33k stars 843 forks source link

请问 dio 和 fish redux 怎么结合呢?--小白求助 #639

Closed ganlanshu0211 closed 4 years ago

ganlanshu0211 commented 4 years ago

我使用 fish redux 管理状态,但是我想使用 dio 访问 fish redux 里面的变量 token,来维持登陆状态,不知道要怎么使用,才能在 fish redux 管理状态的同时,可以让 dio 也能从 fish redux 获取 token 状态的变化。

请问这个要解决呢?

ganlanshu0211 commented 4 years ago

想到了用 connecter 来连接数据,但是 globalStore 要怎么使用 connecter 呢?

ganlanshu0211 commented 4 years ago

貌似直接用就是正解

ganlanshu0211 commented 4 years ago

有一个问题,dio 有办法通知 fish redux 吗?我在 dio 里有一个拦截器,可以拦截一个刷新后的 token,我想将这个 token 通知给 fish redux 刷新 token,这个拦截器貌似在 fish redux 中没法写,这要怎么做的?

dddrop commented 4 years ago

因为 token 跟页面无关。我管理 token 的方法是用一个 Settings 的单例来保存。

ganlanshu0211 commented 4 years ago

因为 token 跟页面无关。我管理 token 的方法是用一个 Settings 的单例来保存。

我觉得跟页面有关,token 关联登陆状态,登陆状态控制页面是否需要登录,退出登录等等,最好还是一起管理

dddrop commented 4 years ago

确切的讲,

token 关联登陆状态,登陆状态控制页面是否需要登录

是对的。

但是为了对应框架,应该灵活的改变相关性策略。 我方案是, token 保存在配置单例。 登录状态又请求的401错误处理来控制同步。

当然也考虑过给 api 层传上下文,来获取 state 中的 token 的方案。 你可以尝试调用这种方案。

ganlanshu0211 commented 4 years ago

不太懂你说的这两个方案

登录状态又请求的401错误处理来控制同步。

这个方案的话,我的 401 错误是 dio 的拦截器的 onError 获取的,要同步的话,就要和 fish redux 取得通信,这个要怎么做呢?

当然也考虑过给 api 层传上下文,来获取 state 中的 token 的方案。

我现在的情况是,整个 dio 和 fish redux 是分离的, 拦截器是全局的,如果要传上下文,是每个 api 都要传上下文吗?

ganlanshu0211 commented 4 years ago

已解决,dio 使用 GlobalStore 与 fish redux 交互

wangemng commented 4 years ago

已解决,dio使用GlobalStore与fish redux交互

dio->GlobalStore 后要跳转到登录页面 你是怎么跳转的呀?