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;