前端 Ant Design Pro 加loading

1.首先给模块加一层<Spin></Spin>

return (
        <Spin spinning={loading} wrapperClassName={styles.mySpinning}>
            <div className={styles.main}>
                <TitleBar {...params} />
                <div id='carbonPeak' className={styles.echarts} />
            </div>
        </Spin>
    
    )

 spinning的属性为true会一直显示加载,把加载样式调整好!!!

.mySpinning的样式举例

.mySpinning{
    height: 100%;
    :global{
        .ant-spin-spinning{
        max-height: 100% !important;
        }
        .ant-spin-container{
        height: 100%;
        }
    }
}

 2.让页面中的loading和model建立链接

export default connect(
    ({ loading, }) => 
    ({ loading: loading.effects['carbonPeak'], }),
)(index);

  页面中获取到loading

const { loading } = props.carbonPeak;

3.在当前页面加载时,useEffect()调用carbonPeak/changeLoading,就去访问carbonPeak中的loading,给其赋值为true,待其其他访问的数据成功时,更改carbonPeak的loading为false;

useEffect(() => {
        
        if (uniqueCode && tabActive != null && tabActive != undefined
            && projectTime.actualStartTime && projectTime.actualEndTime
            && listSences.length > 0
        ) {
            const params = {
                uniqueCode: uniqueCode,
                actualStartTime: projectTime.actualStartTime,
                actualEndTime: projectTime.actualEndTime,
                listSences: listSences
            };

            // 数据加载
            dispatch({
                type: 'carbonPeak/changeLoading',
            });

                
            if (tabActive == 0) {
                dispatch({
                    type: 'carbonPeak/carbonPeakModel',
                    payload: { ...params }
                });
            } else {
                dispatch({
                    type: 'carbonPeak/energyPeakModel',
                    payload: { ...params }
                });
            }

        }


    }, [
        tabActive,
        uniqueCode,
        projectTime,
        // projectTime.actualEndTime,
        listSences
    ]);

在model中


    namespace: 'carbonPeak',  //命名空间

    state: {
        largeYear: [],
        largeYear2:[],
        sceneNamePeak: [],
        allScensesPeak: [],
        gdpUnitAndPopUnit:[],
        loading:true   
    },

effects:{ 
    *changeLoading({ payload, callback }, { call, put }) {
            yield put({
                type: 'saveLoading',
                payload: {loading:true},
                });
     }
}
reducers: {
    saveLoading(state, { payload }) {
            return {
                ...state,
                loading:payload.loading
            }
    }
}

当数据加载成功时,调用saveloading,修改loading的值


 effects: {
    *energyPeakModel({ payload, callback }, { call, put }) {
            
            ......// 省略

            yield put({
                type: 'saveLoading',
                payload: {loading:false},
            });
            // if (callback) callback(all);
     },


     *carbonPeakModel({ payload, callback }, { call, put }) {
           
            ......// 省略

            yield put({
                type: 'saveLoading',
                payload: {loading:false},
            });
            // if (callback) callback(all);
     },
}
  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值