vue2.6 jsx语法怎么获取slot-scope中得值?

     {tableOptions && tableOptions.length > 0 ? (

tableOptions.map((item) => {

return (

<el-table-column

label={item.label}

prop={item.prop}

min-width={item.minWidth}

width={item.width}

type={item.type}

align={item.align || 'center'}

>

<template slot-scope={row}>

{item.slot

? this.$scopedSlots[item.slotName]({

getCurRow: row,

})

: ''}

</template>

</el-table-column>

);

})

我想获取el-table-column slot-scope中得row,需要怎么写呢


回答:

      tableOptions.map((item) => {

return (

<el-table-column

label={item.label}

prop={item.prop}

min-width={item.minWidth}

width={item.width}

type={item.type}

align={item.align || 'center'}

formatter={(row, column, cellValue, index) => {

return item.slot

? this.$scopedSlots[item.slotName]({

row: row,

})

: cellValue;

}}

></el-table-column>

);

})

el-table-column 标签提供了formatter方法,可以使得嵌套得slot获取到row值


回答:

jsx 文档地址:https://github.com/vuejs/jsx-...
示例代码,放入你的系统应该可以直接运行

export default {

name: 'table-demo',

data() {

return {

tableData: [

{

date: '2016-05-02',

name: '王小虎',

address: '上海市普陀区金沙江路 1518 弄',

},

{

date: '2016-05-04',

name: '王小虎',

address: '上海市普陀区金沙江路 1517 弄',

},

{

date: '2016-05-01',

name: '王小虎',

address: '上海市普陀区金沙江路 1519 弄',

},

{

date: '2016-05-03',

name: '王小虎',

address: '上海市普陀区金沙江路 1516 弄',

},

],

tableOptions: [

{

prop: 'date',

label: '日期',

},

{

prop: 'name',

label: '姓名',

},

{

prop: 'address',

label: '地址',

slot: ({ row }) => {

return <el-button>{row.address}</el-button>;

},

},

],

};

},

render() {

return (

<div>

<h1>el-table</h1>

<el-table data={this.tableData} style={{ width: '100%' }}>

{this.tableOptions.map((column) => {

const scopedSlots = column.slot

? {

default: column.slot,

}

: null;

return (

<el-table-column

prop={column.prop}

label={column.label}

scopedSlots={scopedSlots}

></el-table-column>

);

})}

</el-table>

</div>

);

},

};

以上是 vue2.6 jsx语法怎么获取slot-scope中得值? 的全部内容, 来源链接: utcz.com/p/932855.html

回到顶部