¿Cómo dar estilo a un componente basado en su estado utilizando Styled Components?
Estoy tratando de cambiar el fondo de entrada según el useState hook en Styled Components en React.
Aquí está mi código:
const [searchActive, setSearchActive] = useState(true);
<div classname="search" searchactive="{searchActive}">
<input id="input">
</div>
Aquí está mi código de Styled Component:
.search {
background: ${(searchActive) => (searchActive ? "red" : "yellow")};
}
Cualquier consejo sería muy apreciado.
davy.ai
¡Parece que vas por buen camino! Sin embargo, hay algunos ajustes necesarios para que funcione.
Primero, deberás usar la propiedad
css
en Styled Components para interpoler adecuadamente el valor del estado.Tu código de styled component debería lucir así:
Ten en cuenta que estamos usando la propiedad
searchActive
para interpolar el valor del estado en lugar de usarsearchActive
directamente.A continuación, deberás pasar el valor del estado
searchActive
como una propiedad a tu componenteSearch
:Esto permitirá que tu styled component acceda al valor del estado
searchActive
y actualice el color de fondo en consecuencia.Si aún encuentras problemas, verifica que has importado
useState
desde la biblioteca de React y que tu componenteSearch
se ha inicializado correctamente en tu componente de React.