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

145
Vistas
el componente principal no aparecerá si no le paso todos los accesorios al elemento secundario

Antes que nada, es bueno mencionar que soy un poco nuevo en el mundo de las reacciones. Estoy usando Mui con reaccionar. aquí está mi código:

 const Search = (props) => { const theme = useTheme(); const isSmall = useMediaQuery(theme.breakpoints.down("sm")); return !isSmall || props.show ? <SearchDiv {...props} /> : null; };

como puede ver, es un componente simple que, en determinadas circunstancias, devuelve otro componente personalizado. mi problema es que si no agrego {... props} al componente secundario (SearchDiv), la búsqueda completa del componente no aparecerá. pero si agrego todo funciona bien y no puedo entender por qué? ¿Siempre necesitamos pasar todos los accesorios a cualquier componente secundario?

Busqué en StackOverflow y en Google, pero no encontré algo similar a mi pregunta.

Editar : aquí está el resto del código:

 const SearchDiv = styled("div")(({ theme }) => ({ position: "relative", borderRadius: theme.shape.borderRadius, backgroundColor: alpha(theme.palette.common.white, 0.15), "&:hover": { backgroundColor: alpha(theme.palette.common.white, 0.25), }, marginLeft: 0, width: "50%", [theme.breakpoints.up("sm")]: { marginLeft: theme.spacing(1), }, [theme.breakpoints.down("sm")]: { marginLeft: theme.spacing(1), }, })); const Navbar = () => { const [showSearch, setShowSearch] = useState(false); return ( <AppBar> <Toolbar sx={{ display: "flex", justifyContent: "space-between" }}> <Search show={showSearch}> <StyledInputBase placeholder="Search…" inputProps={{ "aria-label": "search" }} /> </Search> <SearchIcon onClick={() => setShowSearch(true)} /> </Toolbar> </AppBar> ); }; export default Navbar;
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Como referencia, consulte Composición frente a herencia .

Sin pasar accesorios, es decir

 <SearchDiv />

su estilo <div> no tiene hijos para representar. Cuando pasa todos los accesorios principales a través de {...props} , eso incluye a los children , el equivalente a...

 <SearchDiv children={props.children} show={props.show} />

Sin embargo, no recomendaría esto. Una alternativa sería

 <SearchDiv> { props.children } </SearchDiv>

según la sección de contención de la guía vinculada anteriormente.

about 4 years ago · Juan Pablo Isaza 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