Réagir-routeur : Comment déclencher $(document).prêt()?
Dans mon Réagir + Réagissent-configuration de routeur, mon composant les importations de certains jQuery choses (chouette.carrousel et le magnific popup)
Je veux avoir un code propre, de sorte que les caractéristiques externes sont stockées dans un fichier distinct. Le code ci-dessous fonctionne uniquement lorsque le chargement de la page avec l'URL directe et ne fonctionne pas lors de la navigation en arrière et en avant de l'application. Donc, tout à l'intérieur de $(document).ready
est déclenché uniquement avec un lien direct.
import '../jQuery/carousel.js';
$(document).ready(function(){
$('.owl-carousel').owlCarousel({
});
$('.popup-gallery').magnificPopup({
});
});
Comment puis-je gérer ce problème? J'ai essayé d'utiliser componentWillMount et l'envelopper .prêt() avec la fonction personnalisée, mais je ne peux pas accéder updateJs()
dans le fichier importé
class MyComponent extends Component {
componentWillMount() {
updateJs();
}
}
Vous devez vous connecter pour publier un commentaire.
Pas besoin d'utiliser
$(document).ready()
d'appel de fonction jquery dansreact
.Vous pouvez faire usage de
componentDidMount()
tout comme votre$(document).ready()
pour s'assurer queDOM
est rendu.Alors accès
jQuery
bibliothèques dépendantes comme des variables locales à appliquer pourDOM
elemnets. L'exemple ci-dessous montre un peu de lumière sur ce.jQuery
fonction dewindow
objet pour accéder àreact
composant. Et une chose de plus essayer dereact
les bibliothèques comme des solutions de rechange pour votrejQuery
bibliothèques.