<template>
<div>
<el-row :gutter="20" class="header">
<el-col :span="6">
<el-select
v-model="select"
clearable
placeholder="Select"
@change="selectChange(select)"
>
<el-option value="Option1" label="Option1" />
<el-option value="Option2" label="Option2" />
</el-select>
</el-col>
<el-button type="primary" @click="initTable">生成表格</el-button>
</el-row>
<!-- 表格部分 -->
<el-table
:data="selectChange(select)"
v-if="select"
style="width: 100%"
id="phon-table"
>
<el-table-column
align="center"
v-for="(item, index) in options"
:key="index"
:prop="item.prop"
:label="item.label"
>
</el-table-column>
</el-table>
</div>
</template>
<script setup>
import { ref, onMounted } from "vue";
const options = ref([
{ label: "title", prop: "title" },
{ label: "shanghai", prop: "shanghai" },
{ label: "beijing", prop: "beijing" },
{ label: "guangzhou", prop: "guangzhou" },
{ label: "shenzhen", prop: "shenzhen" },
{ label: "nanjing", prop: "nanjing" },
]);
//数据
const data1 = ref([
{
title: "足球人数",
shanghai: 100,
beijing: 200,
guangzhou: 300,
shenzhen: 400,
nanjing: 500,
},
]);
const data2 = ref([
{
title: "篮球人数",
shanghai: 1000,
beijing: 2000,
guangzhou: 3000,
shenzhen: 4000,
nanjing: 5000,
},
]);
const select = ref(null);
let dataArr = [];
const selectChange = (select) => {
// console.log(select);
if (select === "Option1") {
dataArr = data1.value;
console.log(dataArr);
} else if (select === "Option2") {
dataArr = data2.value;
console.log(dataArr);
}
return dataArr;
};
onMounted(() => {
//不能调用,得不到dataArr,报错dataArr未定义
console.log(selectChange(select));
console.log(dataArr)
});
//因为后续需要对dataArr进行自定义修改,放在onMounted钩子中也不起作用,产生了新的问题:如何在selectChange函数外部调用到dataArr? 求指教,谢谢!
</script>
<style></style>
追问:select的change事件内容如何暴露到外部
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
关注 修改注意点我加了注释-----------------------------------
<template> <div> <el-row :gutter="20" class="header"> <el-col :span="6"> <el-select v-model="select" clearable placeholder="Select" @change="selectChange(select)" > <el-option value="Option1" label="Option1" /> <el-option value="Option2" label="Option2" /> </el-select> </el-col> <el-button type="primary" @click="initTable">生成表格</el-button> </el-row> <!-- 表格部分 --> <el-table :data="dataArr" v-if="select" style="width: 100%" id="phon-table"> <el-table-column align="center" v-for="(item, index) in options" :key="index" :prop="item.prop" :label="item.label" > </el-table-column> </el-table> </div> </template> <script setup> import { ref, onMounted } from "vue"; const options = ref([ { label: "title", prop: "title" }, { label: "shanghai", prop: "shanghai" }, { label: "beijing", prop: "beijing" }, { label: "guangzhou", prop: "guangzhou" }, { label: "shenzhen", prop: "shenzhen" }, { label: "nanjing", prop: "nanjing" }, ]); //数据 const data1 = ref([ { title: "足球人数", shanghai: 100, beijing: 200, guangzhou: 300, shenzhen: 400, nanjing: 500, }, ]); const data2 = ref([ { title: "篮球人数", shanghai: 1000, beijing: 2000, guangzhou: 3000, shenzhen: 4000, nanjing: 5000, }, ]); const select = ref(null); let dataArr = ref([]); // 使用ref包裹--------------------------------------- const selectChange = (select) => { // console.log(select); if (select === "Option1") { dataArr = data1.value; console.log(dataArr); } else if (select === "Option2") { dataArr = data2.value; console.log(dataArr); } // return dataArr; 去除------------------------------- }; onMounted(() => { select.value = "Option1"; // 设置select初始值,默认选中Option1------------------------------------------ selectChange(select) // 上方table组件绑定值变为dataArr-------------------------------- console.log(dataArr); }); //因为后续需要对dataArr进行自定义修改,放在onMounted钩子中也不起作用,产生了新的问题:如何在selectChange函数外部调用到dataArr? 求指教,谢谢! </script> <style></style>
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥60 求一个简单的网页(标签-安全|关键词-上传)
- ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
- ¥15 基于卷积神经网络的声纹识别
- ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
- ¥100 为什么这个恒流源电路不能恒流?
- ¥15 有偿求跨组件数据流路径图
- ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
- ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
- ¥15 CSAPPattacklab
- ¥15 一直显示正在等待HID—ISP