redux-action-tools icon indicating copy to clipboard operation
redux-action-tools copied to clipboard

增加几个exapmle

Open vicvinc opened this issue 8 years ago • 5 comments

如题: 增加几个example对新手更友好些 :)

vicvinc avatar Feb 08 '17 03:02 vicvinc

@vicvinc 谢谢反馈,之前考虑到用法和源码都比较简单就偷懒了,稍后会加一些的

kpaxqin avatar Feb 10 '17 08:02 kpaxqin

我用了下,目前感觉还不错!

vicvinc avatar Feb 10 '17 09:02 vicvinc

我大致看了一下源码,发现createActions 里边不能实现异步actions(createAsyncAction的功能),或者我没有看懂实现的方式,或者这是不必要。 createReducer 这块我没有看懂它是如何区分action的,如你也提到 image 的注意事项,但是我没有看明白如何区分。 菜鸟一枚,请指教,感激不尽。

ctocto avatar Dec 02 '17 11:12 ctocto

我又重新看了一下源码。在when 的第一个参数是区分action的。那他后.done .failed,是不是when 第一个参数所指的那个actionType,当处理单个action的时候。我其实应该个createActions 只处理一个action,就避免了问题。

ctocto avatar Dec 02 '17 11:12 ctocto

@ctocto 不太清楚你的问题,如果有代码示例会比较好理解。 多数场景下,一次异步动作可以用三个action中的两个完全表达,即异步开始 + (异步成功 || 异步失败) 。因此,对异步行为的声明,其实只要声明“开始”的那个action X,剩下的就可以直接定义为 X_SUCCESSED || X_FAILED 。 如你所说,when既可以指明要处理哪个同步action,又可以为接下来的.done.failed提供初始action的信息,这一点模仿了jQuery式的链式写法,将信息放在上下文中传递。

在README.MD中有相关的例子:

const reducer = createReducer()
  .when([ACTION_FOO, ACTION_BAR], handlerForBothActions) // share handler for multi actions
  .when('BAZ', handler) // optimistic update here if you need
  .done(handler) // handle 'BAZ_COMPLETED'  
  .failed(errorHandler) // handle 'BAZ_FAILED'
  .build(initValue); // Don't forget 'build()' !

注意这里的.done和.failed

kpaxqin avatar Dec 04 '17 12:12 kpaxqin