Vue 错误:TypeError:无法读取 Proxy.render 处未定义的属性“标题”

Posted

技术标签:

【中文标题】Vue 错误:TypeError:无法读取 Proxy.render 处未定义的属性“标题”【英文标题】:Vue error: TypeError: Cannot read property 'title' of undefined at Proxy.render 【发布时间】:2018-12-16 02:09:38 【问题描述】:

我发现了一些与我类似的问题,但没有一个足够清楚以解决我的具体问题。

我的 Test.Vue 组件中有这段代码,它被导入到我的 App.vue 文件中。

附:昨天我在做这个的时候一切都很好,我在做这件事时根本没有遇到任何错误。我刚刚关闭了我的笔记本电脑,今天再次打开它来处理它,当我刷新我的页面时开始出现这个错误。

<template>
    <div class = "test">
        <input type="text" v-model="title"> <br/>
        <h1>title</h1>
        <p>user.lastName</p>
        <p v-if="showName">user.firstName</p>
        <p v-else>Nada</p>

        <!-- <ul>
            <li v-for="item in items>item.title</li>
        </ul> -->

    </div>
</template>

<script>
export default 
    name: 'test',
    data() 
        return
            title: 'Hello World',
            user: 
                firstName:'John',
                lastName:'Doe'
            ,
            showName: true,

            // items: [
            //  title: 'Item One',
            //  title: 'Item Two',
            //  title: 'Item Three'
            // ]
        
    

</script>
<style scoped> 
</style>

使用我的代码中的内容 - 已经注释了在我的 &lt;template&gt; 中创建的行和 items:[] in ,一切

vue.esm.js?efeb:1741 TypeError: Cannot read property 'title' of 不明确的 在 Proxy.render (eval at ./node_modules/vue-loader/lib/template-compiler/index.js?"id":"data-v-dc87507c","hasScoped":true,"transformToRequire":" video":["src","poster"],"source":"src","img":"src","image":"xlink:href","buble":"transforms": !./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/Test.vue (0.b8f1eab6988182beecb6.hot-update.js:7), :37:59) 在 VueComponent.Vue._render (vue.esm.js?efeb:4544) 在 VueComponent.updateComponent (vue.esm.js?efeb:2788) 在 Watcher.get (vue.esm.js?efeb:3142) 在 Watcher.run (vue.esm.js?efeb:3219) 在 flushSchedulerQueue (vue.esm.js?efeb:2981) 在 Array.eval (vue.esm.js?efeb:1837) 在 flushCallbacks (vue.esm.js?efeb:1758)

【问题讨论】:

尝试重新编译。 对不起,我是新手,这是什么意思? 关闭浏览器当前工作的标签页。重启你的开发服务器,你就可以摆脱错误了。 【参考方案1】:

您的代码运行良好,请确保当您取消注释您的注释代码时,您在 items 之后加上引号(“)

<li v-for="item in items">item.title</li>

这就是它应该工作的全部。

这是工作的fiddle

如果您仍然收到它,只需关闭发球并重新开始。

希望对你有帮助。

【讨论】:

关于服务器的快速问题。我显然是一个新手,所以我需要一些澄清。当我在终端中执行“npm run dev”时,它运行正常并给了我我的 localhost:8080 服务器,它告诉我它当前正在运行。我该如何摆脱这种情况,我应该在什么时候执行“npm build dev”?谢谢! 我修复了语法错误,但我的控制台中仍然出现同样的错误。上面的评论说尝试再次编译,我该怎么做? 您是否尝试重新启动“npm run serve”? 我尝试执行“npm run dev”,但没有解决。我应该做的不止这些吗? 解决了我的问题。事实证明,我试图访问的状态并不像我想象的那样存在。所以我的组件连接正确,但是我有一个 Vuex Store 操作,它提交了一个带有“未定义”的突变,而不是我期望它拥有的数据。因此,当组件尝试渲染时,我的状态属性之一实际上是未定义的,我试图访问该未定义属性的属性。我认为更严格的测试或在 TypeScript 中使用一些强类型会帮助我更早地发现这个问题,不确定。【参考方案2】:

您在此处缺少结束引号:

<li v-for="item in items>item.title</li>

您应该在items 之后添加引号。然后就可以了。

【讨论】:

我在我的代码中修复了这个问题,但我仍然遇到同样的错误。我认为这是服务器问题,而不是代码本身,代码本身是正确的。我应该重做 Vue 的哪一部分停止然后继续我的工作?【参考方案3】:

TypeError 已经把所有的事情都告诉你了。首先,你应该知道 Proxy.render 是谁,当它加载时,发生了什么,好吗? 然后,在这个渲染时 undefined 的属性'title',这意味着当这个页面渲染时,实例,可能它被称为'vm.$el',找不到这个属性,但是它需要这个属性,所以你需要正确初始化此属性。 例子: 如果你在模板中写这个:

<li v-for="item in items" :key="item">item[a.b].title</li>

你定义的数据是这样的:

a:,


items: [title: 'Item One'],

你会得到:

enter image description here

因为渲染时找不到a.b

【讨论】:

以上是关于Vue 错误:TypeError:无法读取 Proxy.render 处未定义的属性“标题”的主要内容,如果未能解决你的问题,请参考以下文章

vue计算属性getter错误=> [Vue警告]:渲染错误:“TypeError:无法读取未定义的属性'periodNum'”[重复]

Vue路由器错误:TypeError:无法读取未定义的属性“匹配”

我收到一个错误 [Vue 警告]:渲染错误:“TypeError:无法读取未定义的属性‘名称’”

Vue 错误:未捕获(在承诺中)TypeError 无法读取 null 的属性(读取“地址”)

挂载钩子中的错误(承诺/异步):“TypeError:无法读取未定义的属性'scrollIntoView'”在挂载钩子(Vue)中

Vue 错误:TypeError:无法读取 Proxy.render 处未定义的属性“标题”