vue3 render函数方式创建el-select,不能回显是什么问题呢?
const handleRemove = () => { const options = combination.value.mapList[VariableEnum.variable.toString()] ?? []; const selected = ref(); const content = h("div", {}, [ h("p", { style: { marginBottom: "12px" } }, "已有变量配置绑定此组合方式,如要删除请选择替换组合方式"), h( // ElSelect, 'el-select', { // onChange: (val: any) => { "onUpdate:modelValue": (val: number) => { selected.value = val; console.log(selected.value); }, // value: selected.value, modelValue: selected.value, style: { width: "100%" }, placeholder: "请选择替换组合方式", }, [ options.map((item: any) => h(ElOption, { key: item.id, label: item.title, value: item.id, }) ), ] ), ]); ElMessageBox({ title: "警告", message: () => content, }).then(() => { console.log(selected.value); // 处理删除逻辑 });};
h 函数的第一个参数如果是原生标签的话可以传字符串,如果是 vue 组件的话应该传入组件的定义。
找到原因了,conten不是写的函数,这样定义是一个常量了,肯定不会变化了
从你给出的代码片段来看,你正在使用 Vue 3 和 Element UI 的 el-select
组件来创建一个下拉选择框。你提到的问题是 el-select
无法回显(即无法正确显示已选的值)。
以下是我分析的几个可能的问题原因:
el-select
的 modelValue
属性应该绑定到一个响应式的数据上。在你的代码中,你使用了 ref()
来创建一个响应式引用,并试图将 modelValue
绑定到这个引用的值上。然而,你并没有在任何地方改变这个引用的值,所以 modelValue
不会自动更新。onUpdate:modelValue
事件处理函数的问题:你在 onUpdate:modelValue
事件处理函数中打印了 selected.value
,但是并没有改变它的值。这可能是问题的原因。ElOption
组件的 value
属性正确设置:每个 ElOption
组件的 value
属性应该设置为与 el-select
的 modelValue
相匹配的值。在你的代码中,每个 ElOption
的 value
属性设置为 item.id
,你需要确保这是正确的。为了解决这个问题,你可以尝试以下修改:
selected.value
的值。ElOption
的 value
属性设置为与 selected.value
相匹配的值。下面是一个修改后的代码示例:
const handleRemove = () => { const options = combination.value.mapList[VariableEnum.variable.toString()] ?? []; const selected = ref(null); // Initialize to null const handleSelectChange = (val: number) => { selected.value = val; console.log(selected.value); }; const content = h("div", {}, [ h("p", { style: { marginBottom: "12px" } }, "已有变量配置绑定此组合方式,如要删除请选择替换组合方式"), h( 'el-select', { "onUpdate:modelValue": handleSelectChange, modelValue: selected.value, style: { width: "100%" }, placeholder: "请选择替换组合方式", }, [ options.map((item: any) => h(ElOption, { key: item.id, label: item.title, value: item.id, }) ), ] ), ]); ElMessageBox({ title: "警告", message: () => content, }).then(() => { console.log(selected.value); // Now this should print the selected value // 处理删除逻辑 });};
这段代码将在用户选择一个选项后更新 selected.value
,这样就能正确回显已选的值了。
在el-pagination分页组件中,Size子组件渲染函数中使用了el-select,该select中使用了on-input这一属性,但是el-select源码中并没有看到on-input这一prop,请问on-input是什么? el-pagination中的el-select https://github.com/ElemeFE/element/blob/dev/packages/pagi
el-select value值设置的正确,但是回显不显示对应的label;options和value都是从表格数据里面同时拿到的,而且是表格里面偶发性会有一条数据出现这种情况 <el-table-column label="状态" prop="status"> 调用forceUpdate也没用,我用的是2.15的版本 求大神指导应该怎么处理
共同点是两者都可以下拉
如下代码我在el-table里面嵌套了一个select: 我们的要求是选择了“是”后,点击保存,刷新表格数据后选择了“是”的,要禁用select,和提交按钮。 我是怎么做的呢,首次进入页面根据后端接口返回的数据控制禁用:disabled="row.is_finished == 2"; 提交数据的时候需要获取选项的这个值,于是select使用change事件,但是,我选择后就直接改掉了行row.is
数据是通过懒加载获取的,default-expanded-keys属性值需要从顶层根节点到当前选中节点的key路径,现在回显的时候只能得到当前选中节点的key,这样该如何回显呢? 想要的效果是:编辑回显时,展开树形控件选中的节点是默认选中的状态