fix(Calendar): incorrect month title after auto scroll (#5569)

This commit is contained in:
neverland 2020-01-14 10:52:39 +08:00 committed by GitHub
parent 25574aab72
commit 2047db68d9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 9 additions and 3 deletions

View File

@ -80,6 +80,10 @@ export default createComponent({
}, },
methods: { methods: {
scrollIntoView() {
this.$refs.days.scrollIntoView();
},
getDayType(day) { getDayType(day) {
const { type, minDate, maxDate, currentDate } = this; const { type, minDate, maxDate, currentDate } = this;
@ -166,12 +170,14 @@ export default createComponent({
genDays() { genDays() {
if (this.visible) { if (this.visible) {
return ( return (
<div class={bem('days')}> <div ref="days" class={bem('days')}>
{this.genMark()} {this.genMark()}
{this.days.map(this.genDay)} {this.days.map(this.genDay)}
</div> </div>
); );
} }
return <div ref="days" />;
}, },
genDay(item, index) { genDay(item, index) {

View File

@ -158,7 +158,7 @@ export default createComponent({
this.months.some((month, index) => { this.months.some((month, index) => {
if (compareMonth(month, targetDate) === 0) { if (compareMonth(month, targetDate) === 0) {
this.$refs.months[index].$el.scrollIntoView(); this.$refs.months[index].scrollIntoView();
return true; return true;
} }

View File

@ -419,7 +419,7 @@ test('should scroll to current month when show', async done => {
}); });
Element.prototype.scrollIntoView = function() { Element.prototype.scrollIntoView = function() {
expect(this).toEqual(wrapper.findAll('.van-calendar__month').at(3).element); expect(this.parentNode).toEqual(wrapper.findAll('.van-calendar__month').at(3).element);
done(); done();
}; };