J'ai un objet dans un fichier externe et je souhaite passer l ' url dans le bouton onClick mais je ne sais pas transmettre la valeur.
Objet :
class Projects extends Component {
render() {
return (
<div>
{ProjectLists.map((project, i) =>
<section className='section'>
<div className='row'>
<div className='col-sm'>
<div className='content-left'>
<p key={project.id + i}>
{project.iconImage}
</p>
</div>
</div>
<div className='col-sm-8'>
<div className='content-right text-left'>
<h1>{project.name}</h1>
<p>{project.description}</p>
<p>Technologies: {project.technologies}</p>
<button type='submit' onClick=() => </button>>View live</button>
</div>
</div>
</div>
</section>
)}
</div>
)
}
}
Comment passer ProjectLists.map ((project, i) => href dans la carte () dans
const ProjectLists = [
{
id: "4",
iconImage: "",
name: "Simple",
description: "Simple is a corporate responsive template and the absolutely clean & modern template theme for your business. The theme was built by Foundation Framework and take advantages of it features: grid system, typography, buttons, form, UI element, section and more.",
technologies: "HTML, CSS, JavaScript",
href: "http://striped-dolls.surge.sh"
}
]
export default ProjectLists;
Merci pour votre aide!
3 Réponses :
Vous pouvez utiliser la balise "a" à cette fin.
onClick={() => { window.location.href = project.href }}
Si vous souhaitez utiliser onClick dans votre bouton, vous pouvez essayer ceci.
<a href={project.href}></a>
Cette solution fonctionne mais j'aimerais savoir comment passer {project.href} dans onClick () . Pourriez-vous donner un exemple s'il vous plaît?
Vous pouvez transmettre des données supplémentaires dans votre carte en utilisant les fonctions fléchées:
{ProjectLists.map(project =>
<button onClick={onProjectClick(project)}>View live</button>
}
// e.g.
onProjectClick = project => event => {
console.log(project.description);
navigateTo(project.href);
}
J'ai remarqué que votre bouton a type = "soumettre" donc plus le bon événement à gérer est onSubmit sur l'élément de formulaire cependant car cela gère l'appui sur la touche Retour par exemple (ce n'est pas essentiel cependant).
Merci mais je veux le passer dans le avec onClick .
Je ne sais pas ce que vous entendez par là, je viens de vous montrer comment passer les données du projet dans le bouton onClick événement ??
Je suis un débutant avec React. Je suis désolé si je ne comprends pas tout. Où ajouter cette fonction aux projets de classe ? `` `` onProjectClick = project => event => {console.log (project.description); naviguer vers (project.href); } `` `
J'ajoute onProjectClick avant render () mais cela garde les erreurs d'affichage!
Vous devriez l'ajouter au même niveau que render () (avant ou après cela n'a pas d'importance) mais peut-être que vous n'utilisez pas @ babel / plugin-proposal-class-properties dans votre projet, en ce sens car vous obtiendrez une erreur. Je recommande vivement de l'utiliser car cela rend le travail avec les rappels d'événements beaucoup plus propre dans React
Pour les débutants, utilisez toujours github.com/facebook/create-react-app , puis vous n'avez pas à vous soucier de Babel la plupart du temps
<button onClick={()=>this.setRedirect(project.href)}>View live</button>
Vous souhaitez rediriger vers le lien ou utiliser le bouton à cet effet.
vous pouvez utiliser à partir de ce lien: stackoverflow.com / questions / 43804032 /…