Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

请问:dispatch一个不存在的action,是否会报错?是否能在onError中捕获到? #416

Closed
qingfengmy opened this issue Dec 20, 2016 · 5 comments

Comments

@qingfengmy
Copy link

dispatch一个不存在的action,是否会报错?是否能在onError中捕获到?

@sorrycc
Copy link
Member

sorrycc commented Dec 21, 2016

感觉应该直接抛错,但这是逻辑错误,不会走 onError。我自己写项目时也遇到过好几次。

@qingfengmy
Copy link
Author

我觉得框架应该在没有action匹配时至少报个警告错误。我自己无法判断该action是无效的。

@sorrycc sorrycc modified the milestone: 1.3 Jan 4, 2017
@jokemmy
Copy link

jokemmy commented Jan 10, 2017

不一定需要报错吧...因为在某些场景下是正常情况

比如:
两个页签的内容是按需加载的分别用的是两个 model, 第一次打开时才加载
一个页签打开后发生数据变化需要通知另一个页签更新界面
这种情况判断不了另一个页签到底有没有加载,
因此第一个页签 dispatch/put 第二个页签的 action, 这种情况 action 存在则运行不存在则无所谓

完全不用考虑 action 是否存在

不知道你们的场景是啥样的, 我好像没遇到过需要报错的情况

@longzb
Copy link

longzb commented Jan 15, 2017

的确。今天我不小心写错namespace了,dispatch调model时控制台不提示报错页面也没啥任何反应。

@afc163
Copy link
Contributor

afc163 commented Jan 15, 2017

直接报错可能不是好的实践。

  1. flux 是一套 UI 和业务逻辑分离的架构,带有 dispatch 的 UI 和 reducer 理论上是可以互相分离和各自复用的。如果 UI 单独开发,可以不考虑 reducer/sagas 是否已经实现。
  2. 当然如果在一个系统中,给一个插件进行 warning,是有用的。

@sorrycc sorrycc mentioned this issue Mar 27, 2017
@sorrycc sorrycc modified the milestone: 1.3 Mar 27, 2017
@sorrycc sorrycc closed this as completed Sep 2, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants