Réagir: Définir des constantes?
J'ai un composant conteneur qui est l'alimentation d'un composant de présentation avec une image à la fois (chaque fois qu'un utilisateur clique sur un bouton). Je veux, pour définir les chemins d'image dans une constante (tableau). Mais j'ai TypeError: Cannot read property '1' of undefined
lorsque vous essayez de lire à partir de ce tableau.
Comment puis-je résoudre cette erreur, et est-ce la meilleure approche?
export default class ImageContainer extends Component {
constructor(props){
super(props)
this.state = {
currentImage: '/images/dummy-image-1.jpg'
}
this.changeImage = this.changeImage.bind(this)
const images = [
'/images/dummy-image-1.jpg',
'/images/dummy-image-2.jpg',
'/images/dummy-image-3.jpg',
'/images/dummy-image-4.jpg',
'/images/dummy-image-5.jpg'
]
}
changeImage(event){
console.log(this.images[1])
//Do something
}
render(){
return(
<ImageView image={this.state.currentImage} changeImage={this.changeImage} />
)
}
}
Vous devez vous connecter pour publier un commentaire.
Vous devez définir
images
comme propriété de l'objet dans le constructeur:lorsque vous déclarez des variables (à l'aide de
var
,let
,const
), il est visible que dans la fonction (dans votre cas, le constructeur) champ d'application.Vous pouvez déplacer la const définition en dehors de la classe:
De cette façon
images
reste unconst
et il est encore visible uniquement le code dans le fichier (qui je suppose est juste leImageContainer
classe).