【问题标题】:[Vue warn]: Error in render: "TypeError: object is undefined"[Vue 警告]:渲染错误:“TypeError:对象未定义”
【发布时间】:2018-11-19 04:56:07
【问题描述】:

<script>
        const app = new Vue({
            el: '#app', 
            data:{
                results:{}
            },
            mounted()
            {
                axios.get('{{ route('request.data') }}').then(response=>this.results = response.data)
            }
        });
    </script>
&lt;span class="company-value" v-text="results.request_stats.new"&gt;&lt;/span&gt;

如标题所示,这是我遇到的错误。但是当我console.log(object) 时,该值就在那里并且它不为空。那么这个错误的意义何在

注意:object=results.request_stats

【问题讨论】:

  • 请添加您的代码。
  • 添加了代码。我在路由上调用 ajax 请求,它返回一个对象结果
  • 请添加相关代码。您的示例中没有objectconsole.logresults.request_stats

标签: javascript vue.js vuejs2


【解决方案1】:

解决方法是将以下 sn-p 添加到您的范围中

v-if="results && results.request_stats"

【讨论】:

    【解决方案2】:

    您必须声明并分配一些值,例如 {}[] 以绑定,否则您将收到 request_stats.new 的未定义错误

    const app = new Vue({
                el: '#app', 
                data:{
                    results:{request_stats:{}},
                    loading:true
                },
                mounted()
                {
                  var vm = this;
                   setTimeout(function(){ 
                    vm.loading = false;
                    vm.results.request_stats.new = "Niklesh Raut";
                   }, 1000);
                }
            });
    <script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.16/vue.js"></script>
    <div id="app">
    <div>
    <span class="company-value" v-text="results.request_stats.new"></span>
    <div v-show="loading">loading...</div>
    </div>
    </div>

    不赋值,报错

    const app = new Vue({
                el: '#app', 
                data:{
                    results:{},
                    loading:true
                },
                mounted()
                {
                  var vm = this;
                   setTimeout(function(){ 
                    vm.loading = false;
                    vm.results.request_stats.new = "Niklesh Raut";
                   }, 1000);
                }
            });
    <script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.16/vue.js"></script>
    <div id="app">
    <div>
    <span class="company-value" v-text="results.request_stats.new"></span>
    <div v-show="loading">loading...</div>
    </div>
    </div>

    【讨论】:

    • 我必须初始化每个从服务器获取时可以是动态的对象和数组??
    • @AhmedNawazKhan:是的,老板要绑定对象。
    • 你也可以阅读how data binds
    • 这太疯狂了。数据可能是动态的。你可能永远不知道什么是数组对象等
    • 您能分享您不了解数据类型的任何情况吗?数组有对象,对象有数组。
    猜你喜欢
    • 2019-01-03
    • 2021-02-13
    • 2020-03-23
    • 2021-02-17
    • 2021-01-12
    • 2018-07-14
    • 2021-03-21
    • 2021-08-18
    • 2020-09-17
    相关资源
    最近更新 更多