欧美成人影院,国产精品一线,亚洲国产不卡,亚洲第一网站,欧美福利视频,99精品视频在线,日韩欧美人妻,亚洲日韩高清无码

查看詳情

uni-app中自定義組件不顯示的分析及解決辦法

需求:自定義一個導(dǎo)航組件,根據(jù)配置進(jìn)行顯示。
程序好下:

<template>

    <view class="outBox">

        <view class="mt10 mb10 pd10 nav_li" v-for="(itm,idx) in _module" :key="idx" :class="_linum" :style="'background-image:url('+itm.thumb+');'">

            {{itm.title}}

        </view>

    </view>

</template>


<script>

    //欄目導(dǎo)航組件

    export default {

        data(){

            return {

                _module:[],

                _linum:''

            }

        },

        props: {

            current: {

                type:String,

                default:''

            },

            home: {

                type:Boolean,

                default:false

            },

            thumb: {

                type:Boolean,

                default:false

            },

            linenum: {

                type:Number,

                default:3

            }

        },

        onReady() {

            var _this = this;

            var _current = _this.current || '';

            var _home = _this.home || false;

            var _thumb = _this.thumb || false;

            var _linenum = _this.$func.toInt(_this.linenum);

            if(_linenum<6 && _linenum>0){

                _this._linum = 'li_' + _linenum;

            }else{

                _this._linum = 'li_3';

            }

            

            var showModule = function(vobj){

                //對module進(jìn)行處理、展示,是否只顯示有縮略圖的

                //return false;

                if(!_this.$func.isN(vobj)){

                    let _tmpArr = [];

                    for(let _md in vobj){

                        if(!_this.$func.isN(vobj[_md].isMenu)){

                            _tmpArr.push(vobj[_md]);

                        }

                    }

                    _this._module = _tmpArr;

                }

            }

            

            //從緩存中讀取欄目信息,如果沒有,讀取服務(wù)端的

            let moduleData = uni.getStorageSync('module');

            if(this.$func.isN(moduleData)){

                this.$func.myAjax('/AjaxAPI.php',{action:'module'},function(ret){

                    if(ret){

                        if(ret.code>0){

                            //寫入緩存

                            uni.setStorage({

                                key:'module',

                                data:ret.data

                            });

                            //console.log(JSON.stringify(ret.data));

                            showModule(ret.data,_this);

                        }

                    }

                });

            }else{

                //console.log(JSON.stringify(moduleData));

                showModule(moduleData,_this)

            }

        }

    }

</script>


結(jié)果發(fā)現(xiàn),組件并未渲染,不顯示,各種斷點調(diào)試,依然無效。
最后發(fā)現(xiàn),問題出在onReady事件上,百度了一下發(fā)現(xiàn)uniapp的組件中并沒有onReady事件,uni-app只有以下幾個生命周期。
uniapp組件生命周期將onReady換成created后BUG就解決了。

注:如果修改onReady為created還是不行,那么,就可能是由于以下代碼導(dǎo)致的。

         var showModule = function(vobj){

                //對module進(jìn)行處理、展示,是否只顯示有縮略圖的

                //return false;

                if(!_this.$func.isN(vobj)){

                    let _tmpArr = [];

                    for(let _md in vobj){

                        if(!_this.$func.isN(vobj[_md].isMenu)){

                            _tmpArr.push(vobj[_md]);

                        }

                    }

                    _this._module = _tmpArr;

                }

            }


_this._module = _tmpArr;

這里直接引用_this._module的時候,_this是一個vue對象,將 var showModule = function(vobj) 改為  var showModule = function(vobj,vbox),然后 _this._module = _tmpArr; 改為  vbox._module = _tmpArr;

在created() {}中編寫代碼時,需要避免以下劃線開頭的變量命名。

注:如果以上還不能解決你的問題,可以嘗試一下這篇內(nèi)容:技術(shù)支持:
技術(shù)支持微信二維碼


原創(chuàng)內(nèi)容,轉(zhuǎn)載請注明出處:網(wǎng)站建設(shè),APP開發(fā),小程序開發(fā)請找江西居道科技有限公司,http://www.xhjnt.cn

智能建站系統(tǒng)代理招商
所屬分類:文章中心??????Time:2020-06-15 14:13:35??????人氣:16754
威远县| 新兴县| 孝感市| 广州市| 肃南| 桑日县| 三亚市| 民县| 吉安市| 北碚区| 墨竹工卡县| 嘉鱼县| 通化市| 康平县| 永胜县| 万宁市| 无锡市| 六枝特区| 昭通市| 鄂托克前旗| 南昌市| 鹤岗市| 雅江县| 和平区| 雅安市| 涪陵区| 泸州市| 台北市| 鄂托克前旗| 宣威市| 昆山市| 宽城| 灌南县| 泗水县| 开江县| 延津县| 嵊泗县| 高邮市| 娄烦县| 大名县| 达日县|