如何将多个VNode包裹在外层组件并添加点击事件?
解决Naive UI Autocomplete自定义渲染容器点击事件的问题
你出错的核心原因是Vue h() 函数的参数顺序用反了:h() 的第二个参数是元素的 props 配置(包含事件、属性等),第三个参数才是子节点内容集合。你之前把子节点数组放在了第二个参数位置,事件配置放在第三个,导致语法错误。
正确的写法应该把点击事件放在第二个参数的配置对象中,子节点数组放在第三个参数:
const renderSearchResult = option => h('div', { onClick: () => alert('foo') }, [ h(NTag, { size: 'small', type: 'info' }, { default: () => option.type }), ' ', option.label ] );
这样就能将所有内容统一包裹在 div 容器内,同时成功绑定点击事件。
内容的提问来源于stack exchange,提问作者Mitya
相关产品推荐
相关产品推荐

