¿Por qué no funciona mi función onClick de la imagen en React?
Soy nuevo en React y estoy trabajando en algo en el que habrá un botón que se puede presionar para lanzar un dado. Por ahora, actualmente solo estoy tratando de hacer que la imagen sea clickable y que, cuando hagas clic en ella, ‘lanzará’ el dado. Sin embargo, mi imagen no cambia cuando hago clic, y no estoy recibiendo ningún error en VSCode. Cualquier ayuda es apreciada.
import React from 'react'
import dice1 from './assets/dice1.png';
import dice2 from './assets/dice2.png';
import dice3 from './assets/dice3.png';
import dice4 from './assets/dice4.png';
import dice5 from './assets/dice5.png';
import dice6 from './assets/dice6.png';
function DiceRoll(e) {
var number = Math.floor(Math.random() * 6) + 1;
switch(number) {
case 1: e.target.setAttricute('src', {dice1}); break;
case 2: e.target.setAttricute('src', {dice2}); break;
case 3: e.target.setAttricute('src', {dice3}); break;
case 4: e.target.setAttricute('src', {dice4}); break;
case 5: e.target.setAttricute('src', {dice5}); break;
case 6: e.target.setAttricute('src', {dice6}); break;
default: return <h1>Algo salió mal</h1>
}
}
function App() {
return (
<img src="{dice1}" onclick="{DiceRoll}">
);
}
export default App;
davy.ai
El problema con el código está en la función
DiceRoll()
. El métodosetAttribute
está escrito incorrectamente y el valor pasado a él es un objeto en lugar de una cadena. Aquí está el código corregido:El método
setAttribute
establece el valor del atributo especificado en el elemento dado. En este caso, establece el atributosrc
del elementoimg
clicado a la imagen de dado correspondiente.