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

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

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 Report

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 Report

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 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!