Skip to content

Commit

Permalink
Merge pull request #503 from YikaJ/fix/select-slot-options-update
Browse files Browse the repository at this point in the history
fix(select): fix slot options update
  • Loading branch information
chaishi authored Mar 7, 2022
2 parents b6a2492 + d8024fe commit e2073a2
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 4 deletions.
2 changes: 1 addition & 1 deletion src/select/option.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ export default mixins(keepAnimationMixins).extend({
this.tSelect && this.tSelect.getOptions(this);
},
beforeDestroy() {
this.tSelect && this.tSelect.hasOptions && this.tSelect.destroyOptions(this);
this.tSelect && this.tSelect.hasSlotOptions && this.tSelect.destroyOptions(this);
},
render(): VNode {
const {
Expand Down
7 changes: 4 additions & 3 deletions src/select/select.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ export default mixins(getConfigReceiverMixins<Vue, SelectConfig>('select')).exte
visible: false,
searchInput: '',
showCreateOption: false,
hasOptions: false, // select的slot是否有options组件
hasSlotOptions: false, // select的slot是否有options组件
defaultProps: {
trigger: 'click',
placement: 'bottom-left' as string,
Expand Down Expand Up @@ -405,7 +405,7 @@ export default mixins(getConfigReceiverMixins<Vue, SelectConfig>('select')).exte
(item) => get(item, this.realValue) === option.value && get(item, this.realLabel) === option.label,
);
if (!tmp.length) {
this.hasOptions = true;
this.hasSlotOptions = true;
const valueLabel = {};
set(valueLabel, this.realValue, option.value);
set(valueLabel, this.realLabel, option.label);
Expand Down Expand Up @@ -675,7 +675,7 @@ export default mixins(getConfigReceiverMixins<Vue, SelectConfig>('select')).exte
</ul>
{loading && <div class={this.tipsClass}>{loadingTextSlot}</div>}
{!loading && !displayOptions.length && !showCreateOption && <div class={this.emptyClass}>{emptySlot}</div>}
{!this.hasOptions && displayOptions.length && !loading ? (
{!this.hasSlotOptions && displayOptions.length && !loading ? (
this.renderDataWithOptions()
) : (
<ul v-show={!loading && displayOptions.length} class={[`${prefix}-select__groups`, listName]}>
Expand All @@ -696,6 +696,7 @@ export default mixins(getConfigReceiverMixins<Vue, SelectConfig>('select')).exte
if (children) {
this.realOptions = parseOptions(children);
this.isInited = true;
this.hasSlotOptions = true;
}

function parseOptions(vnodes: VNode[]): TdOptionProps[] {
Expand Down

0 comments on commit e2073a2

Please sign in to comment.