2.5.21
https://codepen.io/AmrIKhudair/pen/NevxML
1- créer une classe étendant Array et ajouter une méthode personnalisée
2- instancier une nouvelle instance de la classe et l'ajouter aux données
3- essayez d'appeler la méthode sur l'instance dans le modèle
La méthode est exécutée avec succès
L'erreur n'est pas une fonction
Vue 2 ne prend actuellement pas en charge les sous-classes Array (la branche de développement Vue 3 le fait déjà). Je vais convertir cela en une demande de fonctionnalité.
@AmrIKhudair
J'en avais aussi besoin et je l'ai fait fonctionner dans les terres des utilisateurs. Lorsque Vue 3 arrive, vous pouvez le supprimer.
export function makeReactive (obj) {
// eslint-disable-next-line no-proto
const proto = obj.__proto__
Object.defineProperty(obj, '__proto__', {
get () { return proto },
// eslint-disable-next-line no-proto
set (newValue) { proto.__proto__ = newValue }
})
}
import { makeReactive } from 'util'
export default class UserCollection extends Array {
constructor (...args) {
super(...args)
makeReactive(this)
}
}
@edcoreweb
Merci beaucoup
Commentaire le plus utile
@AmrIKhudair
J'en avais aussi besoin et je l'ai fait fonctionner dans les terres des utilisateurs. Lorsque Vue 3 arrive, vous pouvez le supprimer.