3***@163.com
3***@163.com
  • 发布:2020-06-16 08:50
  • 更新:2020-06-16 08:50
  • 阅读:1332

自定义组件中,在created函数中修改data里面的值不生效

分类:uni-app

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

<script>  
    //栏目导航组件  
    export default {  
        data() {  
            return {  
                _module:[{"title":"首页"},{"title":"产品列表"},{"title":"公司简介"}],  
                _linum:''  
            }  
        },  
        props: {  
            current: {  
                type:String,  
                default:''  
            },  
            home: {  
                type:Boolean,  
                default:false  
            },  
            thumb: {  
                type:Boolean,  
                default:false  
            },  
            linenum: {  
                type:Number,  
                default:3  
            }  
        },  
        created() {  
            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';  
            }  
            //_this._module = [{"title":"首页3"},{"title":"产品列表3"},{"title":"公司简介3"}];  

            //从缓存中读取栏目信息,如果没有,读取服务端的  
            let moduleData = uni.getStorageSync('module');  
            if(_this.$func.isN(moduleData)){  
                _this.$func.myAjax('/AjaxAPI.php',{action:'param',target:'cacheversion'},function(ret){  
                    console.log(JSON.stringify(ret));  
                    if(ret){  
                        if(ret.code>0){  
                            console.log('code>0');  
                            _this._module = [{"title":"首页5"},{"title":"产品列表5"},{"title":"公司简介5"}];  
                        }  
                    }  
                });  
            }else{  
                _this._module = [{"title":"首页7"},{"title":"产品列表7"},{"title":"公司简介7"}];  
            }  
        },  
        methods:{  
        }  
    }  
</script>  

<style>  

</style>  

昨天调试了整整一天,依然没搞定,所以发个贴到群里来,看下有没有哪位大师能指点一下,在自定义组件的created中修改data的值,不生效。

以下是最终界面效果:

以下是调试输出信息:

我在AJAX请求到数据后,本来是想将数据显示到界面中的,代码片段如下:
//_this._module = [{"title":"首页3"},{"title":"产品列表3"},{"title":"公司简介3"}];

        //从缓存中读取栏目信息,如果没有,读取服务端的  
        let moduleData = uni.getStorageSync('module');  
        if(_this.$func.isN(moduleData)){  
            _this.$func.myAjax('/AjaxAPI.php',{action:'param',target:'cacheversion'},function(ret){  
                console.log(JSON.stringify(ret));  
                if(ret){  
                    if(ret.code>0){  
                        console.log('code>0');  
                        _this._module = [{"title":"首页5"},{"title":"产品列表5"},{"title":"公司简介5"}];  
                    }  
                }  
            });  
        }else{  
            _this._module = [{"title":"首页7"},{"title":"产品列表7"},{"title":"公司简介7"}];  
        }  

如上,并未显示出"首页5"或"首页7"字样,如果我不注销掉 _this._module = [{"title":"首页3"},{"title":"产品列表3"},{"title":"公司简介3"}]; 它就是最终显示的结果,懵了!!

2020-06-16 08:50 负责人:无 分享
已邀请:

该问题目前已经被锁定, 无法添加新回复