元素 UI Table 使用插槽作用域问题的列 "Cannot read property 'column_name' of undefined"
Element UI Table Column that uses slot-scope Issue "Cannot read property 'column_name' of undefined"
这里有人用element ui框架吗? https://element.eleme.io/#/en-US/
我正在使用其 table 组件并在其列上使用槽作用域。它工作正常,直到我 运行 npm update 当然会更新软件包。现在,控制台有很多错误。后来我发现 table 列的这个槽范围导致了这个问题。
非常感谢任何帮助。这是一个 fiddle 的问题。
https://jsfiddle.net/japhfortin/jkzma0v8/3/
<el-table :data=list>
<el-table-column label="First Name">
<template slot-scope="scope">{{ scope.row.first_name }}</template>
</el-table-column>
<el-table-column prop="last_name" label="Last Name">
</el-table-column>
</el-table>
data() {
return {
input: '',
list: [
{
first_name: 'Foo',
last_name: 'Bar'
}
]
}
},
抛出错误是因为值 scope
在第一次渲染时是一个空对象。这意味着对象行未定义并抛出。在访问它之前,您必须检查 row
值是否已定义。您还可以使用它们的替代形式将值绑定到列。这取决于您的用例。
<el-table :data="list">
<el-table-column prop="first_name" label="First Name"> </el-table-column>
<el-table-column prop="last_name" label="Last Name"> </el-table-column>
</el-table>
您还可以在 scope.row
上使用 v-if
以确保该值在渲染时存在。
<el-table :data="list">
<el-table-column label="First Name">
<template slot-scope="scope" v-if="scope.row">
{{ scope.row.first_name }}
</template>
</el-table-column>
<el-table-column prop="last_name" label="Last Name"> </el-table-column>
</el-table>
这个问题是由于 Vue 中的新插槽语法引起的。
更多信息请访问 https://github.com/vuejs/rfcs/blob/master/active-rfcs/0001-new-slot-syntax.md
带文字的默认广告位
<!-- old -->
<foo>
<template slot-scope="scope">
{{ scope}}
</template>
</foo>
<!-- new -->
<foo v-slot="scope">
{{ scope}}
</foo>
使用 UI 元素的 Table 组件的另一个示例。
注意:升级Vue到最新版本,目前是2.6.3。
<el-table :data="list">
<el-table-column label="First Name" v-slot="scope">
{{ scope.row.first_name }}
</el-table-column>
<el-table-column prop="last_name" label="Last Name">
</el-table-column>
</el-table>
问题已在 Vue@2.6.3 上修复
这里有人用element ui框架吗? https://element.eleme.io/#/en-US/
我正在使用其 table 组件并在其列上使用槽作用域。它工作正常,直到我 运行 npm update 当然会更新软件包。现在,控制台有很多错误。后来我发现 table 列的这个槽范围导致了这个问题。
非常感谢任何帮助。这是一个 fiddle 的问题。
https://jsfiddle.net/japhfortin/jkzma0v8/3/
<el-table :data=list>
<el-table-column label="First Name">
<template slot-scope="scope">{{ scope.row.first_name }}</template>
</el-table-column>
<el-table-column prop="last_name" label="Last Name">
</el-table-column>
</el-table>
data() {
return {
input: '',
list: [
{
first_name: 'Foo',
last_name: 'Bar'
}
]
}
},
抛出错误是因为值 scope
在第一次渲染时是一个空对象。这意味着对象行未定义并抛出。在访问它之前,您必须检查 row
值是否已定义。您还可以使用它们的替代形式将值绑定到列。这取决于您的用例。
<el-table :data="list">
<el-table-column prop="first_name" label="First Name"> </el-table-column>
<el-table-column prop="last_name" label="Last Name"> </el-table-column>
</el-table>
您还可以在 scope.row
上使用 v-if
以确保该值在渲染时存在。
<el-table :data="list">
<el-table-column label="First Name">
<template slot-scope="scope" v-if="scope.row">
{{ scope.row.first_name }}
</template>
</el-table-column>
<el-table-column prop="last_name" label="Last Name"> </el-table-column>
</el-table>
这个问题是由于 Vue 中的新插槽语法引起的。 更多信息请访问 https://github.com/vuejs/rfcs/blob/master/active-rfcs/0001-new-slot-syntax.md
带文字的默认广告位
<!-- old -->
<foo>
<template slot-scope="scope">
{{ scope}}
</template>
</foo>
<!-- new -->
<foo v-slot="scope">
{{ scope}}
</foo>
使用 UI 元素的 Table 组件的另一个示例。
注意:升级Vue到最新版本,目前是2.6.3。
<el-table :data="list">
<el-table-column label="First Name" v-slot="scope">
{{ scope.row.first_name }}
</el-table-column>
<el-table-column prop="last_name" label="Last Name">
</el-table-column>
</el-table>
问题已在 Vue@2.6.3 上修复