bestony / weapp-V2ex

V2ex 微信小程序版

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

加载失败提示有更好的方法吗?

jonahfang opened this issue · comments

image

我故意关闭网络连接,就显示成这样了。

另外请教:为何网络正常情况下,就不会显示modal 呢?想不通是如何控制的。

modal: true,时,就不会显示这个了,
wx.request 这个请求中,如果success,就会设置为true,失败时会设置为 modal: false。不过我或许应该优化一下,失败时同时让Loading消失,等会回来改。

@bestony ,谢谢这么快就回复。我看了下面的代码:

    Request: function() {
        var that = this;
        wx.request( {
            url: "https://www.v2ex.com/api/topics/hot.json",
            success: function( data ) {
                that.setData( {
                    datas: data.data,
                    loading: true,
                    modal: true,
                })
            },
            fail: function( data ) {
                that.setData( {
                    modal: false
                })
            }
        })
    },

正常流程应该是:
1.开始请求前,应该显示loading(不显示modal)
2.请求成功后(success): 应该关闭loading.
3.请求失败后(fail): 应该关闭loading,显示modal.

但上述流程在程序中好像看不出来。

在初始设置data时会给modal和loading,Loading为显示,Modal为隐藏。具体在第四行和第五行。wx,request成功后,modal不变,loading隐藏。失败时,通过设置modal的值,显示modal,并绑定请求。关闭Loading是我之前没注意,没做好。

不好意思,我看错变量名了, loading/modal 为真都表示hidden.

应该变量名命名为 loadingHidden, modalHidden

改成这样,调试通过:

    data: {
        datas: [],
        loadingHidden: true,
        modalHidden: true
    },
    onLoad: function( options ) {
        var that = this;
        that.Request();
    },
    Request: function() {
        var that = this;
        that.setData( {
            loadingHidden: false
        })
        wx.request( {
            url: "https://www.v2ex.com/api/topics/hot.json",
            success: function( data ) {
                that.setData( {
                    datas: data.data,
                    loadingHidden: true
                })
            },
            fail: function( data ) {
                that.setData( {
                    loadingHidden: true,
                    modalHidden: false
                })
            }
        })
    },

再改进一下:

    Request: function() {
        var that = this;
        that.setData( {
            loadingHidden: false,
            modalHidden: true    <---- 加这个
        })

对,我需要加这个,你不如提交pr,我来合并。省的我等会回去改😃。不过可能要看下各个wxml和js

对了,今晚八点,熊猫TV,364844房间。直播撸小程序