¡Hola amigos! Entonces, aquí está mi situación: algunos de mis componentes requieren javascript. Puedo llamar con éxito el archivo javascript en preview-head.html
pero inicializarlo es un problema.
Antes de la v5.0.1 solía tener:
document.addEventListener("DOMContentLoaded", function(event) {
/* The stuff I needed to initialise */
}, false);
y funcionó, pero ahora no.
He estado buscando en todos sus documentos y en Stackoverflow, pero no puedo encontrar una solución a esto. Parece que debería ser algo que Storybook debería tener en cuenta.
Cualquier ayuda sería apreciada.
No importa, resuelto
@ BennyZ28 ¿cuál fue la solución?
@shilman En realidad no lo he resuelto, lo hice después de demasiadas horas frente a la pantalla pero me equivoqué.
Entonces, ¡cualquier ayuda aún se agradece!
Siempre que cambie la 'página', el elemento antiguo div#root
dentro de iframe
se elimina y se agrega uno nuevo. Puede usar esta función y combinarla con MutationObserver
para ejecutar una función cada vez que cambie la página.
Dentro de su preview-head.html
, puede agregar:
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);
Para comprender cómo funciona MutationObserver
, consulte la documentación de MDN .
🙏
@ BennyZ28 ¿cuál fue la solución?
La solución es demasiado compleja, ¿por qué no el libro de cuentos proporciona una devolución de llamada que se acaba de llamar después de que la historia se haya agregado al árbol de dom?
Comentario más útil
La solución es demasiado compleja, ¿por qué no el libro de cuentos proporciona una devolución de llamada que se acaba de llamar después de que la historia se haya agregado al árbol de dom?