Freecodecamp: [Beta] Más información sobre las etiquetas JSX de cierre automático

Creado en 13 feb. 2018  ·  4Comentarios  ·  Fuente: freeCodeCamp/freeCodeCamp



Nombre del desafío

Más información sobre las etiquetas JSX de cierre automático

descripcion del problema


Se eliminaron los comentarios y se cerraron las etiquetas (se perdió la etiqueta br en el primer intento falló y luego se corrigió) y luego falló el intento, pero luego el elemento se representó en la página.

El error fue de: El elemento JSX proporcionado debería mostrarse tal cual en el nodo DOM con la identificación del nodo de desafío.
El elemento se procesó en la vista previa al recibir este error.
Parece que no se está representando con la identificación del nodo de desafío, sino con la identificación de la raíz.

Código agregado: ReactDOM.render(JSX, document.getElementById('challenge-node'));
Las pruebas pasaron y ahora se muestra dos veces en la vista previa.

El desafío dice:

Corrija los errores en el editor de código para que sea JSX válido y se transpile correctamente. Asegúrese de no cambiar nada del contenido; solo necesita cerrar las etiquetas donde sea necesario.

No menciona la necesidad de adjuntarlo al DOM y parece indicar que solo necesita ajustar el salto de línea y la línea horizontal.

Solución:
Necesita agregar instrucciones para renderizar en el DOM y eliminar la vista previa actual.
O necesita ajustar la vista previa para que esté fuera del nodo de desafío en lugar de la identificación de la raíz.
O hay otra solución en la que actualmente no puedo pensar.

Tu codigo

Failed:
const JSX = (
  <div>
    <h2>Welcome to React!</h2><br />
    <p>Be sure to close all tags!</p>
    <hr />
  </div>
);

Passed: 
const JSX = (
  <div>
    <h2>Welcome to React!</h2><br />
    <p>Be sure to close all tags!</p>
    <hr />
  </div>
);
ReactDOM.render(JSX, document.getElementById('challenge-node'));

help wanted learn

Todos 4 comentarios

¡Gracias por reportar el problema! No creo que debamos agregar instrucciones para representar el componente en el DOM.

Sería inconsistente con los comportamientos de todos los demás desafíos de elementos de React DOM. Por ejemplo, en el desafío anterior, Definir una clase HTML en JSX , no se necesita ReactDOM.render para aprobar el desafío.

@TJBarrettJR la razón por la que agregar un ReactDOM.render al editor de código renderizó el componente dos veces se debió a la forma en que el código sembrado se representa en freeCodeCamp. Los archivos tienen un código de "cuerpo" y un código de "cola". La cola se antepone al código de un usuario y generalmente contiene una línea ReactDOM.render , lo que resulta en dos representaciones.

La línea de procesamiento (que se muestra a continuación) se incluye actualmente en las semillas como solución.

ReactDOM.render(JSX, document.getElementById('challenge-node'));

También está probado. Solo abriré un PR modificando la solución y eliminando la prueba.

Es interesante: el challenge-node id está reservado para ejercicios que representan elementos HTML al DOM; No estoy seguro de cómo terminó en el archivo semilla.

Revisé este ReactDOM.render[ing] innecesario en los otros desafíos de React; no existen otros.

@ jkao1, eso tiene sentido sobre por qué se renderizó dos veces, ¡gracias!

Hasta ahora no he visto nada fuera de lo común con los otros desafíos, pero todavía estoy trabajando en ello.

¿Fue útil esta página
0 / 5 - 0 calificaciones