1
respuesta

ERROR JSX

Al finalizar el video y revisar me da el siguiente error y no entiendo porque me genera el error si el codigo esta bien, agradezco si hay una solucion

![](ERROR-REACT-ALURA)

codigo:

import React, { useState  } from "react";
import { TextField, Button, Box } from "@mui/material";


const Step = ( { data, step } ) => {
    const {inputs, buttonText, onSubmit} = data
 
    return (
      <Box
        component="form"
        autocomplete="off"
        sx={{
          display: "flex",
          alignItems: "center",
          justifyContent: "center",
          flexDirection: "column",
        }}
        onSubmit= { onSubmit }
    >
        {
          inputs.map( ( input, i ) => {
            const { label, type, value,valid, onChange, helperText, validator } = input
            return (
          <TextField
          key={i}
          label={label}
          variant="outlined"
          fullWidth
          margin="dense"
          type={type}
          error={valid === false}
          helperText=
          {valid  === false &&  {helperText} }
          value={ value}
          onChange={ onChange }
        />

            )
          } )
        }

        <Button variant="contained" type="submit">
          {buttonText}
        </Button>
      </Box>
    );
  
}

export default Step;
1 respuesta

Hola Leonardo,

Por el error que muestras en la imagen, parece que hay un problema con el uso de las llaves en la línea donde defines el helperText en el TextField. En tu código, estás usando llaves adicionales que no son necesarias. Aquí está la línea de código en cuestión:

helperText={valid  === false &&  {helperText} }

Las llaves adicionales alrededor de helperText están causando el problema. En JSX, las llaves se utilizan para insertar expresiones de JavaScript, pero en este caso, helperText ya es una variable de JavaScript, por lo que no necesitas las llaves adicionales.

Deberías cambiar esa línea a:

helperText={valid  === false &&  helperText }

Eso debería resolver el problema. Si valid es false, entonces se mostrará el texto de helperText. Si valid es true, entonces no se mostrará nada, ya que el resultado de la expresión true && helperText sería helperText, y el resultado de false && helperText sería false, y React no renderiza false en el DOM.

¡Saludos!

Si este post te ayudó, por favor marca como solucionado ✓. ¡Continúa con tus estudios!