[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,13 +17,12 @@ 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>
</div> </div>
<div class="van-tabs__content"> <div class="van-tabs__content">
<div role="tabpanel" class="van-tab__pane">Text</div> <div role="tabpanel" class="van-tab__pane">Text</div>
<div role="tabpanel" class="van-tab__pane" style="display: none;"> <div role="tabpanel" class="van-tab__pane" style="display: none;">
<!----> <!---->
@ -31,7 +30,7 @@ exports[`change tabs data 1`] = `
<div role="tabpanel" class="van-tab__pane" style="display: none;"> <div role="tabpanel" class="van-tab__pane" style="display: none;">
<!----> <!---->
</div> </div>
</div> </div>
</div> </div>
`; `;
@ -41,12 +40,11 @@ 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>
<div class="van-tabs__content"> <div class="van-tabs__content">
<div role="tabpanel" class="van-tab__pane">Text</div> <div role="tabpanel" class="van-tab__pane">Text</div>
<div role="tabpanel" class="van-tab__pane" style="display: none;"> <div role="tabpanel" class="van-tab__pane" style="display: none;">
<!----> <!---->
@ -54,7 +52,7 @@ exports[`change tabs data 2`] = `
<div role="tabpanel" class="van-tab__pane" style="display: none;"> <div role="tabpanel" class="van-tab__pane" style="display: none;">
<!----> <!---->
</div> </div>
</div> </div>
</div> </div>
`; `;
@ -64,13 +62,12 @@ 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>
</div> </div>
<div class="van-tabs__content"> <div class="van-tabs__content">
<div role="tabpanel" class="van-tab__pane" style="">Text</div> <div role="tabpanel" class="van-tab__pane" style="">Text</div>
<div role="tabpanel" class="van-tab__pane" style="display: none;"> <div role="tabpanel" class="van-tab__pane" style="display: none;">
<!----> <!---->
@ -78,7 +75,7 @@ exports[`click to switch tab 1`] = `
<div role="tabpanel" class="van-tab__pane" style="display: none;"> <div role="tabpanel" class="van-tab__pane" style="display: none;">
<!----> <!---->
</div> </div>
</div> </div>
</div> </div>
`; `;
@ -88,13 +85,12 @@ 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>
</div> </div>
<div class="van-tabs__content"> <div class="van-tabs__content">
<div role="tabpanel" class="van-tab__pane" style="display: none;">Text</div> <div role="tabpanel" class="van-tab__pane" style="display: none;">Text</div>
<div role="tabpanel" class="van-tab__pane" style=""> <div role="tabpanel" class="van-tab__pane" style="">
Text Text
@ -102,7 +98,7 @@ exports[`click to switch tab 2`] = `
<div role="tabpanel" class="van-tab__pane" style="display: none;"> <div role="tabpanel" class="van-tab__pane" style="display: none;">
<!----> <!---->
</div> </div>
</div> </div>
</div> </div>
`; `;
@ -135,19 +131,18 @@ 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>
</div> </div>
<div class="van-tabs__content"> <div class="van-tabs__content">
<div role="tabpanel" class="van-tab__pane">Text</div> <div role="tabpanel" class="van-tab__pane">Text</div>
<div role="tabpanel" class="van-tab__pane" style="display: none;"> <div role="tabpanel" class="van-tab__pane" style="display: none;">
Text Text
</div> </div>
<div role="tabpanel" class="van-tab__pane" style="display: none;">Text</div> <div role="tabpanel" class="van-tab__pane" style="display: none;">Text</div>
</div> </div>
</div> </div>
`; `;
@ -179,13 +174,12 @@ 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>
</div> </div>
<div class="van-tabs__content"> <div class="van-tabs__content">
<div role="tabpanel" class="van-tab__pane">Text</div> <div role="tabpanel" class="van-tab__pane">Text</div>
<div role="tabpanel" class="van-tab__pane" style="display: none;"> <div role="tabpanel" class="van-tab__pane" style="display: none;">
<!----> <!---->
@ -193,7 +187,7 @@ exports[`swipe to switch tab 1`] = `
<div role="tabpanel" class="van-tab__pane" style="display: none;"> <div role="tabpanel" class="van-tab__pane" style="display: none;">
<!----> <!---->
</div> </div>
</div> </div>
</div> </div>
`; `;
@ -203,13 +197,12 @@ 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>
</div> </div>
<div class="van-tabs__content"> <div class="van-tabs__content">
<div role="tabpanel" class="van-tab__pane" style="display: none;">Text</div> <div role="tabpanel" class="van-tab__pane" style="display: none;">Text</div>
<div role="tabpanel" class="van-tab__pane" style=""> <div role="tabpanel" class="van-tab__pane" style="">
Text Text
@ -217,7 +210,7 @@ exports[`swipe to switch tab 2`] = `
<div role="tabpanel" class="van-tab__pane" style="display: none;"> <div role="tabpanel" class="van-tab__pane" style="display: none;">
<!----> <!---->
</div> </div>
</div> </div>
</div> </div>
`; `;
@ -227,13 +220,12 @@ 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>
</div> </div>
<div class="van-tabs__content"> <div class="van-tabs__content">
<div role="tabpanel" class="van-tab__pane" style="display: none;">Text</div> <div role="tabpanel" class="van-tab__pane" style="display: none;">Text</div>
<div role="tabpanel" class="van-tab__pane" style=""> <div role="tabpanel" class="van-tab__pane" style="">
Text Text
@ -241,7 +233,7 @@ exports[`swipe to switch tab 3`] = `
<div role="tabpanel" class="van-tab__pane" style="display: none;"> <div role="tabpanel" class="van-tab__pane" style="display: none;">
<!----> <!---->
</div> </div>
</div> </div>
</div> </div>
`; `;
@ -251,13 +243,12 @@ 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>
</div> </div>
<div class="van-tabs__content"> <div class="van-tabs__content">
<div role="tabpanel" class="van-tab__pane" style="">Text</div> <div role="tabpanel" class="van-tab__pane" style="">Text</div>
<div role="tabpanel" class="van-tab__pane" style="display: none;"> <div role="tabpanel" class="van-tab__pane" style="display: none;">
Text Text
@ -265,6 +256,6 @@ exports[`swipe to switch tab 4`] = `
<div role="tabpanel" class="van-tab__pane" style="display: none;"> <div role="tabpanel" class="van-tab__pane" style="display: none;">
<!----> <!---->
</div> </div>
</div> </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);
}); });
}, },