App.js
import './App.css'; // Estilos propios del componente import Tarjeta from './componentes/Tarjeta'; // Importo la tarjeta const foo=(elemento)=>{ console.log("Has pinchado en " + elemento.alt) if (elemento.alt === "Marie Curie") { elemento.src = "/img/ok.jpg" } } function App() { // Devuelvo un div con las tarjetas que quiera // la Tarjeta tiene unas propiedades que se pasan al componente // Pasamos el nombre y la url de la imagen return ( <div className="App"> <h1>¿Quien descubrió el radio?</h1> <Tarjeta nombre="Einstein" correcta="Marie Curie" foo={foo}/> <Tarjeta nombre="Marie Curie" correcta="Marie Curie" foo={foo}/> <Tarjeta nombre="Schrodinger" correcta="Marie Curie" foo={foo}/> </div> ); } export default App;
Tarjeta.js
import Foto from './Foto'; // Importo Foto import Cabecera from './Cabecera'; // Importo Cabecera // Tarjeta le paso las propiedades nombre y url // Esto va dentro de props pero uso destructuring function Tarjeta({nombre, correcta,foo}) { // En el div es donde pongo la clase, porque es elemento html // Uso los componentes Cabecera y Foto return ( <div className="tarjeta"> <Cabecera nombre={nombre} correcta={correcta}/> <Foto descripcion={nombre} foo={foo}/> </div> ) } export default Tarjeta;
Foto.js
function Foto({descripcion, foo}) { let ruta='/img/' let nombre=descripcion.toLowerCase().replaceAll(" ","")+".jpg" return <img onClick={(evt)=>{foo(evt.target)}} className="foto" src={ruta+nombre} alt={descripcion} /> } export default Foto;