Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

146
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!