Salut les gens! Alors, voici ma situation: certains de mes composants nécessitent du javascript. Je peux appeler avec succès le fichier javascript dans preview-head.html
mais l'initialisation pose un problème.
Avant la v5.0.1, j'avais l'habitude d'avoir:
document.addEventListener("DOMContentLoaded", function(event) {
/* The stuff I needed to initialise */
}, false);
et cela a fonctionné, mais maintenant ce n'est pas le cas.
J'ai regardé partout dans vos documents et Stackoverflow lui-même, mais je ne trouve pas de solution à cela. On a l'impression que cela devrait être quelque chose que Storybook devrait prendre en compte.
Toute aide serait appréciée.
Nevermind, résolu
@ BennyZ28 quelle était la solution?
@shilman En fait, je ne l'ai pas résolu, je l'ai traversé après trop d'heures devant l'écran mais je me suis trompé.
Donc, toute aide toujours appréciée!
Chaque fois que la «page» change, l'ancien élément div#root
à l'intérieur du iframe
est supprimé et un nouveau est ajouté. Vous pouvez utiliser cette fonctionnalité et la combiner avec MutationObserver
pour exécuter une fonction à chaque fois que la page change.
Dans votre preview-head.html
, vous pouvez ajouter:
function runOnInit() {
console.log('Init')
}
function runOnPageChange() {
console.log('Page has changed!')
}
document.addEventListener('DOMContentLoaded', function() {
runOnInit();
const callback = function(mutationsList) {
for (let i = 0, len = mutationsList.length; i < len; i++) {
if (mutationsList[i].type == 'childList') {
runOnPageChange();
break;
}
}
};
const observer = new MutationObserver(callback);
const config = { childList: true, subtree: false };
observer.observe(document.getElementById('root'), config);
}, false);
Pour comprendre comment fonctionne MutationObserver
, veuillez consulter la documentation MDN .
🙏
@ BennyZ28 quelle était la solution?
La solution de contournement est trop complexe, pourquoi le livre de contes ne fournit-il pas un rappel juste après l'ajout de l'histoire à l'arbre dom?
Commentaire le plus utile
La solution de contournement est trop complexe, pourquoi le livre de contes ne fournit-il pas un rappel juste après l'ajout de l'histoire à l'arbre dom?