es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Intentando registrar un objeto de datos en la consola utilizando la notación de puntos y no funciona, ¿por qué?

Tengo un proyecto React que utiliza Graphql y Mongo. Al hacer una consulta, estoy tratando de registrar los datos devueltos en la consola a través de la notación de punto y devuelve “undefined”.

¡No puedo entender por qué??

Mi Componente:

import { useQuery } from "@apollo/client";
import React, { useEffect } from "react";
import { GET_USER_SETTINGS } from "../graphql/getUserTimeSetting";

const UserAuthSettings = ({ isAuthenticated, toggle, user = { name: "" } }) => {
  const { data, loading, error } = useQuery(GET_USER_SETTINGS, {
    variables: { userName: user.name },
    options: {
      awaitRefetchQueries: true,
    },
  });

  console.log(data.userTimeSetting);

  if (loading) return <div>Enviando...</div>;
  if (error) return <div>{error.message}</div>;

  return null;
};

export default UserAuthSettings;

Consola
Imagen de la Consola

Si solo hago “console.log(data)”
Imagen de la Consola con data

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El problema parece ser que el objeto data devuelto por el gancho useQuery no contiene la propiedad anidada userTimeSetting que se está registrando usando la notación de punto.

    Para resolver esto, puedes actualizar la consulta en getUserSetting graphql para devolver la propiedad userTimeSetting, o actualizar el código para registrar el objeto completo data devuelto por la consulta y verificar la estructura del objeto para acceder a la propiedad deseada.

    Por ejemplo, podrías registrar console.log(data) y verificar la estructura del objeto devuelto en la consola. Si userTimeSetting está anidado dentro de otra propiedad, podrías acceder a él usando algo como console.log(data.algunaPropiedad.userTimeSetting).

Comments are closed.