effects loading细节

  1. loading 初始化,effecs可能为空,导致 effects里面的 keys为 undefined,需要设置个默认值
    1. loading.effects[‘user/getUserById’]
  2. effects里面的异步函数,如果直接 return,不会有 loading效果

image.png

  1. import {connect} from 'dva';
  2. function App() {
  3. }
  4. function mapStateToProps({user, loading}) {
  5. return {
  6. defaultState: user,
  7. loading: loading.effects['user/getUserById'] || false,
  8. }
  9. }
  10. function mapDispatchToProps(dispatch) {
  11. return {
  12. _$getUser: payload => dispatch({type: 'user/getUserById', payload})
  13. }
  14. }
  15. export default connect(mapStateToProps, mapDispatchToProps)(App)

state使用规范

  • 不推荐在 mapStateToProps里面,使用展开运算符,展开 state数据
  • 使用defaultState来获取 state的数据

action

type,动作
payload,参数

  1. { type: '命名空间/方法名', payload: {} }