Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

227
Vistas
¿Cómo puedo usar el encadenamiento opcional en datos de objetos cuando uso JavaScript?

Estoy tomando datos de singlePost de Redux y convirtiéndolos en una matriz usando Object.keys.

Sin embargo, cuando el renderizado está en progreso, singlePost se recibe tarde, por lo que cuando trato de console.log, se registra nulo al principio y luego ingresan los datos correctos.

Así que este error se imprime.

No se puede convertir indefinido o nulo en objeto

este es mi codigo

 const Explain = ({navigation, route}) => { const {singlePost} = useSelector((state) => state.post); console.log("singlePost:",singlePost); // singlePost: null first recorded // singlePost: // singlePost = { // User: { // id: 3, // nickname: "bill", // }, // content1: "number1", // content2: "number2", second recorded // content3: "bye", // content4: "empty", // content5: "empty", // content6: "empty", // content7: "empty", // content8: "number3", // content9: "empty", // content10: "empty", // }; const contentOnly = Object.keys(singlePost) return ( ); }; export default Explain;

¿Cómo puedo solucionar este error? ¿Puedo usar el encadenamiento opcional en el objeto?

¿Cómo puedo arreglar mi código?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

No hay necesidad de encadenamiento opcional. El encadenamiento opcional solo es útil cuando se accede a una propiedad de un objeto posiblemente nulo y está llamando a una función con el objeto como argumento.

Podría estar pensando en el operador coalescente nulo , que le da un valor diferente si el que está bajo inspección es nulo o indefinido, que posiblemente podría usar aquí a través de:

 const contentOnly = Object.keys(singlePost ?? {});

Sin embargo, diría que es una forma bastante indirecta de obtener una matriz vacía. Simplemente usaría un operador ternario o condicional :

 const contentOnly = singlePost == null ? [] : Object.keys(singlePost);

Esto les dice a los lectores exactamente lo que van a obtener, especialmente si establece singlePost en nulo de forma predeterminada.

over 4 years ago · Santiago Trujillo Denunciar

0

puede verificar el typeof de la variable y si es nula o no, como se muestra a continuación:

 const contentOnly = (typeof singlePost === 'object' && singlePost !== null) ? Object.keys(singlePost): []
over 4 years ago · Santiago Trujillo Denunciar

0

En su caso, puede verificar si singlePost está definido:

 const contentOnly = Object.keys(singlePost || {}) // or if(singlePost && typeof singlePost == 'object') {...do something}

Si necesita un encadenamiento opcional (según el título de la pregunta). puedes hacer algo como esto

 singlePost && singlePost.content1 // or with new syntax singlePost?.content1

Preste atención: la nueva sintaxis no es compatible con todos los entornos

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda