Recibí este error en mi consola después de guardar los datos. No estoy familiarizado con el reloj en Vue. aunque está leyendo el valor, pero en v-model="seleccionado , detecta un error de devolución de llamada de la propiedad del reloj.
Error en la devolución de llamada para el observador "seleccionado": "Error de tipo: no se pueden leer las propiedades de nulo (leyendo 'valor')"
mi código de componente:
<template> <v-select :items="project_types" item-text="description" item-value="id" v-model="selected" return-object :menu-props="{ bottom: true, offsetY: true }" append-icon="fas fa-chevron-down" placeholder="Type" outlined dense /> </template> <script> import { httpSuccessResponseLogger, httpErrorResponseLogger } from "@/helpers/logger"; export default { name: "TypeDropdown", data: () => ({ project_types: [], selected: null }), methods: { getProjectStatuses() { this.$api.get("providers/project-types") .then(response => { httpSuccessResponseLogger(response); this.project_types = this.$_.get(response, "data.result.project_types", []); }) .catch(error => { httpErrorResponseLogger(error); }) } }, created() { this.getProjectStatuses(); }, watch: { selected(item) { console.log({valueOf: item.value}) this.$store.commit("projects/SET_FILTER_TYPE", { type: item.value }); } } }; </script> <style scoped></style>y en mi Vuex con el módulo:
export default { namespaced: true, state: { filter: { type: [] } }, getters: {}, mutations: { SET_FILTER_TYPE: (state, { type }) => (state.filter.type = type) }, actions: { } }; Espero que puedas ayudar. El problema era this.$refs.form.reset(); y cómo hacer que mis datos sean iguales a valores no vacíos o nulos. como this.$refs.form.reset(); funcionaba bien pero hay datos en el formulario.
Por algunas razones, item se establecerá en null a veces, y si desea leer cualquier propiedad (como el valor) de null , mostrará TypeError.
? significa opcional (ES2020), cuando intenta obtener la propiedad de null o undefined , ya no mostrará el error al agregar ? .
para ver más sobre ?
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Optional_chaining
asi que:
item.value
cambiarlo a:
item?.value