


Vue-Material-Year-Calendar plug-in: What should I do if the calendar is not updated after activeDates.push?
Vue-Material-Year-Calendar plugin: Solution to the calendar not being updated after activeDates.push
When using the Vue-Material-Year-Calendar plugin, you often encounter a problem: after adding dates to the activeDates
array, the calendar interface does not update the selected status. This article will analyze the causes of the problem and provide solutions.
Problem description:
According to the official documentation, use activeDates.sync
to bind the activeDates
array and add date information to the array through a custom method. But even if the activeDates
array already contains the date, the calendar interface still does not display the selected status.
Code example (Vue 2):
<yearcalendar :activeclass="activeclass" :activedates.sync="activedates" prefixclass="your_customized_wrapper_class" v-model="year"></yearcalendar> data() { return { year: 2019, activedates: [ { date: '2019-02-13' }, { date: '2019-02-14', classname: 'red' }, // ... ], activeclass: '', } }, toggledate(dateinfo) { const index = this.activedates.indexOf(dateinfo); if (index === -1) { this.activedates.push(dateinfo); } else { this.activedates.splice(index, 1); } }
The root cause and solution of the problem:
The problem is the difference in the use of .sync
modifiers in Vue 2 and Vue 3.
Vue 2 solution: Remove the .sync
modifier and use :activedates
directly:
<yearcalendar :activeclass="activeclass" :activedates="activedates" prefixclass="your_customized_wrapper_class" v-model="year"></yearcalendar>
Vue 3 solution: use ref
and add selected
attribute:
const activeDates = ref([ { date: '2024-02-13', selected: true, className: '' }, { date: '2024-02-14', className: 'red' }, // ... ]); const toggledate = (dateinfo) => { const index = activeDates.value.findIndex(item => item.date === dateinfo.date); if (index === -1) { activeDates.value.push({...dateinfo, selected: true}); } else { activeDates.value.splice(index, 1); } };
Through the above modifications, the calendar interface will correctly reflect the changes in activeDates
array. The logic of the toggledate
function also needs to be adjusted according to actual needs. For example, when push
a new date, explicitly set selected: true
. The Vue 3 example uses findIndex
to find dates more accurately, avoiding the problem of potential comparison objects inconsistency. The expansion operator ...dateinfo
is also used to avoid directly modifying the original object and maintaining the consistency of the data.
The above is the detailed content of Vue-Material-Year-Calendar plug-in: What should I do if the calendar is not updated after activeDates.push?. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics











How does the Redis caching solution realize the requirements of product ranking list? During the development process, we often need to deal with the requirements of rankings, such as displaying a...

In SpringBoot, use Redis to cache OAuth2Authorization object. In SpringBoot application, use SpringSecurityOAuth2AuthorizationServer...

The Ouyi Exchange app supports downloading of Apple mobile phones, visit the official website, click the "Apple Mobile" option, obtain and install it in the App Store, register or log in to conduct cryptocurrency trading.

In IntelliJ...

JDBC...

In processing next-auth generated JWT...

Why is the return value empty when using RedisTemplate for batch query? When using RedisTemplate for batch query operations, you may encounter the returned results...

The optimization solution for SpringBoot timing tasks in a multi-node environment is developing Spring...
