需找更简单的ajax的loading书写方式

#1

我现在在ajax请求的时候都是这么写loading的。每一书写都得定义state的状态。感觉很麻烦。
有没有更好的实现方法

 
state={show:false}

  componentDidMount(){
    this.setState(()=>({show:true}))
    http("...").then(data=>{
      this.setState(()=>{
        show:false
      })
    }).catch(err=>this.setState(()=>{
      show:false
    }))
  }


 render() {
    const {percent}=this.state
    return (
          {this.state.show&&<Loading />}
)
1 Like
#2

如果使用 dva 作为数据框架,那就简单了。

dva-loading
Auto loading plugin for dva. :clap: You don’t need to write showLoading and hideLoading any more.

#3

你可以把ajax封装一下,统一做loading处理,默认使用oading,不需要时再传参数取消

#4

我在看antdesign源码时候发现一种做法类似于

   const div = document.createElement('div');
        document.body.appendChild(div);
        ReactDOM.render(<Spin />, div);
        ReactDOM.unmountComponentAtNode(div);
        div.parentNode.removeChild(div);

就是创建dom在移除dom。

1 Like