[bugfix] Tab: may cause error when render title slot (#3631)

This commit is contained in:
neverland 2019-06-25 16:29:28 +08:00 committed by GitHub
parent fbd751a641
commit 51105f4194
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 103 additions and 117 deletions

View File

@ -168,16 +168,10 @@ exports[`renders demo correctly 1`] = `
<div class="van-tabs__wrap van-hairline--top-bottom"> <div class="van-tabs__wrap van-hairline--top-bottom">
<div role="tablist" class="van-tabs__nav van-tabs__nav--line"> <div role="tablist" class="van-tabs__nav van-tabs__nav--line">
<div class="van-tabs__line" style="width: 0px; transform: translateX(0px) translateX(-50%);"></div> <div class="van-tabs__line" style="width: 0px; transform: translateX(0px) translateX(-50%);"></div>
<div role="tab" aria-selected="true" class="van-tab van-tab--active"> <div role="tab" aria-selected="true" class="van-tab van-tab--active"><span class="van-ellipsis"><div><i class="van-icon van-icon-more-o"><!----></i>标签
<div><i class="van-icon van-icon-more-o"> </div></span></div>
<!----></i>标签 <div role="tab" class="van-tab"><span class="van-ellipsis"><div><i class="van-icon van-icon-more-o"><!----></i>标签
</div> </div></span></div>
</div>
<div role="tab" class="van-tab">
<div><i class="van-icon van-icon-more-o">
<!----></i>标签
</div>
</div>
</div> </div>
</div> </div>
<div class="van-tabs__content"> <div class="van-tabs__content">

View File

@ -17,8 +17,7 @@ exports[`change tabs data 1`] = `
<div role="tablist" class="van-tabs__nav van-tabs__nav--line" style="border-color: #f44;"> <div role="tablist" class="van-tabs__nav van-tabs__nav--line" style="border-color: #f44;">
<div class="van-tabs__line" style="background-color: rgb(255, 68, 68);"></div> <div class="van-tabs__line" style="background-color: rgb(255, 68, 68);"></div>
<div role="tab" aria-selected="true" class="van-tab van-tab--active"><span class="van-ellipsis">title1</span></div> <div role="tab" aria-selected="true" class="van-tab van-tab--active"><span class="van-ellipsis">title1</span></div>
<div role="tab" class="van-tab"> <div role="tab" class="van-tab"><span class="van-ellipsis"><div><span>title2</span></div></span>
<div><span>title2</span></div>
</div> </div>
<div role="tab" class="van-tab van-tab--disabled"><span class="van-ellipsis">title3</span></div> <div role="tab" class="van-tab van-tab--disabled"><span class="van-ellipsis">title3</span></div>
</div> </div>
@ -41,8 +40,7 @@ exports[`change tabs data 2`] = `
<div role="tablist" class="van-tabs__nav van-tabs__nav--card" style="border-color: blue;"> <div role="tablist" class="van-tabs__nav van-tabs__nav--card" style="border-color: blue;">
<div class="van-tab van-tab--active" style="background-color: blue; border-color: blue;" role="tab" aria-selected="true"><span class="van-ellipsis">new title1</span></div> <div class="van-tab van-tab--active" style="background-color: blue; border-color: blue;" role="tab" aria-selected="true"><span class="van-ellipsis">new title1</span></div>
<div role="tab" class="van-tab" style="color: blue; border-color: blue;"><span class="van-ellipsis"></span></div> <div role="tab" class="van-tab" style="color: blue; border-color: blue;"><span class="van-ellipsis"></span></div>
<div role="tab" class="van-tab van-tab--disabled" style="border-color: blue;"> <div role="tab" class="van-tab van-tab--disabled" style="border-color: blue;"><span class="van-ellipsis"><div><span>title2</span></div>title3</span>
<div><span>title2</span></div>
</div> </div>
</div> </div>
</div> </div>
@ -64,8 +62,7 @@ exports[`click to switch tab 1`] = `
<div role="tablist" class="van-tabs__nav van-tabs__nav--line" style="border-color: #f44;"> <div role="tablist" class="van-tabs__nav van-tabs__nav--line" style="border-color: #f44;">
<div class="van-tabs__line" style="background-color: rgb(255, 68, 68); width: 2px; transform: translateX(0px) translateX(-50%);"></div> <div class="van-tabs__line" style="background-color: rgb(255, 68, 68); width: 2px; transform: translateX(0px) translateX(-50%);"></div>
<div role="tab" aria-selected="true" class="van-tab van-tab--active"><span class="van-ellipsis">title1</span></div> <div role="tab" aria-selected="true" class="van-tab van-tab--active"><span class="van-ellipsis">title1</span></div>
<div role="tab" class="van-tab"> <div role="tab" class="van-tab"><span class="van-ellipsis"><div><span>title2</span></div></span>
<div><span>title2</span></div>
</div> </div>
<div role="tab" class="van-tab van-tab--disabled"><span class="van-ellipsis">title3</span></div> <div role="tab" class="van-tab van-tab--disabled"><span class="van-ellipsis">title3</span></div>
</div> </div>
@ -88,8 +85,7 @@ exports[`click to switch tab 2`] = `
<div role="tablist" class="van-tabs__nav van-tabs__nav--line" style="border-color: #f44;"> <div role="tablist" class="van-tabs__nav van-tabs__nav--line" style="border-color: #f44;">
<div class="van-tabs__line" style="background-color: rgb(255, 68, 68); width: 2px; transform: translateX(0px) translateX(-50%); transition-duration: 0.3s;"></div> <div class="van-tabs__line" style="background-color: rgb(255, 68, 68); width: 2px; transform: translateX(0px) translateX(-50%); transition-duration: 0.3s;"></div>
<div role="tab" class="van-tab"><span class="van-ellipsis">title1</span></div> <div role="tab" class="van-tab"><span class="van-ellipsis">title1</span></div>
<div role="tab" class="van-tab van-tab--active" aria-selected="true"> <div role="tab" class="van-tab van-tab--active" aria-selected="true"><span class="van-ellipsis"><div><span>title2</span></div></span>
<div><span>title2</span></div>
</div> </div>
<div role="tab" class="van-tab van-tab--disabled"><span class="van-ellipsis">title3</span></div> <div role="tab" class="van-tab van-tab--disabled"><span class="van-ellipsis">title3</span></div>
</div> </div>
@ -135,8 +131,7 @@ exports[`lazy render 2`] = `
<div role="tablist" class="van-tabs__nav van-tabs__nav--line" style="border-color: #f44;"> <div role="tablist" class="van-tabs__nav van-tabs__nav--line" style="border-color: #f44;">
<div class="van-tabs__line" style="background-color: rgb(255, 68, 68); width: 2px; transform: translateX(0px) translateX(-50%);"></div> <div class="van-tabs__line" style="background-color: rgb(255, 68, 68); width: 2px; transform: translateX(0px) translateX(-50%);"></div>
<div role="tab" aria-selected="true" class="van-tab van-tab--active"><span class="van-ellipsis">title1</span></div> <div role="tab" aria-selected="true" class="van-tab van-tab--active"><span class="van-ellipsis">title1</span></div>
<div role="tab" class="van-tab"> <div role="tab" class="van-tab"><span class="van-ellipsis"><div><span>title2</span></div></span>
<div><span>title2</span></div>
</div> </div>
<div role="tab" class="van-tab van-tab--disabled"><span class="van-ellipsis">title3</span></div> <div role="tab" class="van-tab van-tab--disabled"><span class="van-ellipsis">title3</span></div>
</div> </div>
@ -179,8 +174,7 @@ exports[`swipe to switch tab 1`] = `
<div role="tablist" class="van-tabs__nav van-tabs__nav--line" style="border-color: #f44;"> <div role="tablist" class="van-tabs__nav van-tabs__nav--line" style="border-color: #f44;">
<div class="van-tabs__line" style="background-color: rgb(255, 68, 68);"></div> <div class="van-tabs__line" style="background-color: rgb(255, 68, 68);"></div>
<div role="tab" aria-selected="true" class="van-tab van-tab--active"><span class="van-ellipsis">title1</span></div> <div role="tab" aria-selected="true" class="van-tab van-tab--active"><span class="van-ellipsis">title1</span></div>
<div role="tab" class="van-tab"> <div role="tab" class="van-tab"><span class="van-ellipsis"><div><span>title2</span></div></span>
<div><span>title2</span></div>
</div> </div>
<div role="tab" class="van-tab van-tab--disabled"><span class="van-ellipsis">title3</span></div> <div role="tab" class="van-tab van-tab--disabled"><span class="van-ellipsis">title3</span></div>
</div> </div>
@ -203,8 +197,7 @@ exports[`swipe to switch tab 2`] = `
<div role="tablist" class="van-tabs__nav van-tabs__nav--line" style="border-color: #f44;"> <div role="tablist" class="van-tabs__nav van-tabs__nav--line" style="border-color: #f44;">
<div class="van-tabs__line" style="background-color: rgb(255, 68, 68);"></div> <div class="van-tabs__line" style="background-color: rgb(255, 68, 68);"></div>
<div role="tab" aria-selected="true" class="van-tab van-tab--active"><span class="van-ellipsis">title1</span></div> <div role="tab" aria-selected="true" class="van-tab van-tab--active"><span class="van-ellipsis">title1</span></div>
<div role="tab" class="van-tab"> <div role="tab" class="van-tab"><span class="van-ellipsis"><div><span>title2</span></div></span>
<div><span>title2</span></div>
</div> </div>
<div role="tab" class="van-tab van-tab--disabled"><span class="van-ellipsis">title3</span></div> <div role="tab" class="van-tab van-tab--disabled"><span class="van-ellipsis">title3</span></div>
</div> </div>
@ -227,8 +220,7 @@ exports[`swipe to switch tab 3`] = `
<div role="tablist" class="van-tabs__nav van-tabs__nav--line" style="border-color: #f44;"> <div role="tablist" class="van-tabs__nav van-tabs__nav--line" style="border-color: #f44;">
<div class="van-tabs__line" style="background-color: rgb(255, 68, 68);"></div> <div class="van-tabs__line" style="background-color: rgb(255, 68, 68);"></div>
<div role="tab" aria-selected="true" class="van-tab van-tab--active"><span class="van-ellipsis">title1</span></div> <div role="tab" aria-selected="true" class="van-tab van-tab--active"><span class="van-ellipsis">title1</span></div>
<div role="tab" class="van-tab"> <div role="tab" class="van-tab"><span class="van-ellipsis"><div><span>title2</span></div></span>
<div><span>title2</span></div>
</div> </div>
<div role="tab" class="van-tab van-tab--disabled"><span class="van-ellipsis">title3</span></div> <div role="tab" class="van-tab van-tab--disabled"><span class="van-ellipsis">title3</span></div>
</div> </div>
@ -251,8 +243,7 @@ exports[`swipe to switch tab 4`] = `
<div role="tablist" class="van-tabs__nav van-tabs__nav--line" style="border-color: #f44;"> <div role="tablist" class="van-tabs__nav van-tabs__nav--line" style="border-color: #f44;">
<div class="van-tabs__line" style="background-color: rgb(255, 68, 68);"></div> <div class="van-tabs__line" style="background-color: rgb(255, 68, 68);"></div>
<div role="tab" aria-selected="true" class="van-tab van-tab--active"><span class="van-ellipsis">title1</span></div> <div role="tab" aria-selected="true" class="van-tab van-tab--active"><span class="van-ellipsis">title1</span></div>
<div role="tab" class="van-tab"> <div role="tab" class="van-tab"><span class="van-ellipsis"><div><span>title2</span></div></span>
<div><span>title2</span></div>
</div> </div>
<div role="tab" class="van-tab van-tab--disabled"><span class="van-ellipsis">title3</span></div> <div role="tab" class="van-tab van-tab--disabled"><span class="van-ellipsis">title3</span></div>
</div> </div>

View File

@ -318,7 +318,8 @@ export default sfc({
renderTitle(el, index) { renderTitle(el, index) {
this.$nextTick(() => { this.$nextTick(() => {
const title = this.$refs.title[index]; const title = this.$refs.title[index];
title.parentNode.replaceChild(el, title); title.innerHTML = '';
title.appendChild(el);
}); });
}, },