dva loading

2020-01-09  本文已影响0人  第2世界

哪来的loading?

loading 对象是 dva 内置的,他会监听你指定的异步请求方法,方法开始的时候该值为 true , 异步方法结束了该值自动置为 false , 可用于页面刚进来时骨架屏的加载和某些需要 loading 状态的场景,当然 你可以在后面定义多个值(上面注释有说明),实现你当前组件的全局 loading 状态。在上面的代码中,页面刚加载的时候我们发了一个异步方法 (nodelist 仓库下的异步 nodelists 方法),submitting 变为 true 骨架屏效果出现,这个方法执行完了(数据已经拿到)后 submitting 会 变为 false 。

export default connect(
  ({
    userAndlogin,
    loading,
  }: {
    userAndlogin: StateType;
    loading: {
      effects: {
        [key: string]: boolean;
      };
    };
  }) => ({
    userAndlogin,
    submitting: loading.effects['userAndlogin/login'],
  }),
)(Login);

刚开始看不懂上面的代码,了解了loading之后简化去掉类型限制就比较明了了:

export default connect(
  ({
    userAndlogin,
    loading,
  }) => ({
    userAndlogin,
    submitting: loading.effects['userAndlogin/login'],
  }),
)(Login);

其中userAndlogin对应model中的namespace,可以通过它获取model中定义的state。

dva-loading 实践用法:https://www.jianshu.com/p/61fe7a57fad4

上一篇下一篇

猜你喜欢

热点阅读