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

242
Visualizações
cómo cambiar el color de fondo del componente principal dinámicamente desde el componente secundario

Estoy trabajando con una aplicación de diseño de camisetas usando fabric.js en reactjs. Tengo un problema cuando quiero cambiar el color de la camiseta. Lo que quiero hacer es cambiar el color de la camiseta del componente secundario pero no pude pasar los datos. ¿Cómo puedo hacer esto? Se han proporcionado componentes secundarios y principales:

Componente principal

 export default function Home() { const [canvas, setCanvas] = useState(''); const initCanvas = () => ( new fabric.Canvas('canvas', { height: 540, width: 445, backgroundColor: "Green", backgroundImage: "/assets/background_tshirt.png", })); useEffect(() => { setCanvas(initCanvas()); }, []); return ( <> <div> <canvas id='canvas'></canvas> <Stickers design = {canvas}></Stickers> <Colors></Colors> </div> </> ) }

Componente hijo

 export default function Colors(){ const [value] = useState(''); return( <div> <div> <label for="tshirt-color">T-Shirt Color:</label> <select value={value} onChange={(canvi)=>{ console.log(canvi.target.value) }} id="tshirt-color"> <option value="#fff">White</option> <option value="#000">Black</option> <option value="#f00">Red</option> <option value="#008000">Green</option> <option value="#ff0">Yellow</option> </select> </div> </div> ); }
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Aquí está mi código index.js:

 import { fabric } from 'fabric' import React,{useState, useEffect} from 'react' import Stickers from '../components/stickers/stickers' import Colors from '../components/stickers/colors/colors' function Home(){ const [canvas, setCanvas] = useState(''); const backgroundColor = useState(false); const initCanvas=()=>( new fabric.Canvas('canvas', { height: 540, width: 445, backgroundColor:"", backgroundImage:"/assets/background_tshirt.png", allowTouchScrolling: true })); const sendcolorToParent=(color)=>{ let addColor = color console.log(addColor) setCanvas( new fabric.StaticCanvas('canvas',{ height: 540, width: 445, backgroundColor: addColor, backgroundImage: "/assets/background_tshirt.png", allowTouchScrolling: true, }) ); } useEffect(()=>{ setCanvas(initCanvas()); }, []); return ( <> <div> <canvas id='canvas'></canvas> <Stickers design = {canvas}></Stickers> <Colors sendcolorToParent={sendcolorToParent}></Colors> </div> </> ) } export default Home;

Y aquí está colores.js

 import React, { useCallback, useEffect, useState } from "react"; import Home from "../../../pages"; function Colors({sendcolorToParent}){ const [value,setValue,setCanvas] = useState('') const setState = useState(0); return( <div> <div> <label htmlFor="tshirt-color">T-Shirt Color:</label> <select value={value} onChange={(canvas)=>setValue( sendcolorToParent(canvas.target.value), )} id="tshirt-color"> <option value="#fff">White</option> <option value="#000">Black</option> <option value="#f00">Red</option> <option value="#008000">Green</option> <option value="#ff0">Yellow</option> </select> </div> </div> ); } export default Colors;
about 4 years ago · Juan Pablo Isaza Relatório

0

Cree una función en el componente principal y pase esa función como accesorios al componente secundario. Llame a esa función cuando la selección sea un cambio y pase el valor como argumento a la función

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