Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

236
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda