Quiero verificar si las entradas están vacías al hacer clic en el botón. Filtro la matriz si una de las entradas está vacía. Intento agregar un error a la matriz, pero cuando hago clic en el botón aparece el error "'ErrorList' de indefinido" Creo que el error es que trato de obtener una matriz llamada ErrorList dentro de un método llamado save , pero ¿cómo me deshago de este problema entonces? También puedes mirar mi código en codesandbox
<template> <div> <form> <div v-for="(learning, i) in general.learnings" :key="i"> <input type="text" v-model="general.learnings[i]" maxlength="120" /> </div> <button @click="save">Save</button> </form> </div> </template> <script> export default { methods: { save(e) { e.preventDefault(); this.general.learnings.filter(function (el) { if (el !== "") { return true; } else { this.errorList.push("Error"); } }); }, }, data() { return { errorList: [], general: { learnings: ["", ""], }, }; }, }; </script>esto sucede porque la referencia de this no hace referencia a su componente dentro del filter .
Simplemente cambie a la función de flecha para solucionar el problema.
this.general.learnings.filter( (el) => { if (el !== "") { return true; } else { this.errorList.push("Error"); } });