Vue: Subclasificación de matrices de soporte

Creado en 27 dic. 2018  ·  3Comentarios  ·  Fuente: vuejs/vue

Versión

2.5.21

Enlace de reproducción

https://codepen.io/AmrIKhudair/pen/NevxML

pasos para reproducir

1- crea una clase ampliando Array y agrega un método personalizado
2- instancia una nueva instancia de la clase y agrégala a los datos
3- intenta llamar al método en la instancia en la plantilla

¿Lo que es esperado?

El método se ejecuta con éxito

¿Qué está pasando realmente?

Error no es una función

feature request

Comentario más útil

@AmrIKhudair
También necesitaba esto y lo hice funcionar en la tierra de los usuarios. Cuando llegue Vue 3, podrás eliminarlo.

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)
  }
}

Todos 3 comentarios

Actualmente, Vue 2 no admite la subclasificación de Array (la rama de desarrollo de Vue 3 ya lo hace). Convertiré esto en una solicitud de función.

@AmrIKhudair
También necesitaba esto y lo hice funcionar en la tierra de los usuarios. Cuando llegue Vue 3, podrás eliminarlo.

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
Muchas gracias

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

franciscolourenco picture franciscolourenco  ·  3Comentarios

paulpflug picture paulpflug  ·  3Comentarios

robertleeplummerjr picture robertleeplummerjr  ·  3Comentarios

gkiely picture gkiely  ·  3Comentarios

bfis picture bfis  ·  3Comentarios