Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

281
Visualizações
¿Cómo cambiar el componente que se muestra con React y CSS?

Tengo una página compuesta con múltiples componentes. Al igual que en la imagen, quiero mostrar el Componente B dentro del Componente A. De forma predeterminada, al hacer clic en A, oculta B y muestra C en el medio. Después de hacer clic nuevamente, cambia para mostrar B y ocultar C.

Cuando se haya mostrado C, cambie también el color del borde de la A.

ingrese la descripción de la imagen aquí

 import React from "react"; import styled, { css } from "styled-components"; import { ComponentA, ComponentB, ComponentC, } from "~/components"; export const NewComponent: React.FC = ({ }) => { return ( <> <ComponentA> <ComponentB>B</ComponentB> <ComponentC>C</ComponentC> </ComponentA> </> ); }; const ComponentA = styled()` ${({ theme }) => css` &:active { border-color: green; bordor: 1px solid; } `} `;

Traté de usar CSS para controlar el color del borde, funciona con background-color pero no funciona con border-color . Además, no estoy seguro de si CSS puede controlar la visualización entre el componente B y el componente C.

about 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

import {useState} from "react"; import { ComponentA, ComponentB, ComponentC, } from "./components"; export const NewComponent: React.FC = ({ }) => { const [isShowing, setIsShowing] = useState<boolean>(true); const toggle = () => { setIsShowing(current => !current); }; return ( <> <ComponentA> <div> <button onClick={toggle}>Toggle</button> {isShowing && <ComponentB>B</ComponentB>} // if true {!isShowing && <ComponentC>C</ComponentC>} // if false </div> </ComponentA> </> ) }
about 4 years ago · Santiago Trujillo Relatório

0

  1. bordor - lo escribiste mal. es frontera
  2. Cuando establece el borde: 1px sólido; luego borde-color: inicial

Puede configurar CSS: borde: 1px verde sólido;

about 4 years ago · Santiago Trujillo Relatório

0

Para cambiar los componentes, debe usar el gancho useState con un estado booleano. Luego agregue un evento onClick en el ComponentA y puede alternar el estado con el gancho.

De esta manera, puede manejar el cambio de color del borde. Cree un atributo para ComponentA (puede elegir el nombre usted mismo), puede pasar valores como accesorios y usar el Operador Ternario para alternar el color.

PD: si no usa mecanografiado, puede eliminar esta línea <{ color: "green" | "white" }> para ComponentA .

 import { useState } from "react"; import styled from "styled-components"; export const ComponentA = styled.div<{ color: "green" | "white" }>` padding: 3rem 7rem; border: 2px solid ${(props) => props.color}; border-radius: 0.5rem; `; const DefaultStyle = styled.div` max-width: 300px; padding: 3rem; border-radius: 0.5rem; `; export const ComponentB = styled(DefaultStyle)` background-color: magenta; `; export const ComponentC = styled(DefaultStyle)` background-color: orange; `; export default function App() { const [isActive, setIsActive] = useState(false); const toggle = () => setIsActive(!isActive); return ( <div className="App"> <ComponentA color={isActive ? "green" : "white"} onClick={toggle}> {isActive ? ( <ComponentC>Component C</ComponentC> ) : ( <ComponentB>Component B</ComponentB> )} </ComponentA> </div> ); }

Editar código deslumbrante

about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda