J'essaie de rendre un composant lorsque le onMount
est déclenché dans mon composant intelligent. Le serveur semble rendre le composant correctement mais quand onMount
est déclenché sur le client il ne rend pas, j'obtiens un simple undefined
.Le rendu côté client simple ne fonctionne pas
const button = require('src/client/components/a-button');
console.log(button); // --> { path: '/home/karl/dev/instanty/node/src/client/components/a-button.marko.js', _: [Getter/Setter], '$__shouldBuffer': true, meta: {} }
const htmlServer = button.renderToString({ label: 'Click me!' }); // <-- works
console.log(htmlServer);
module.exports = class {
onMount() {
console.log(button); // --> Template {path: undefined, meta: undefined, _: function}
const html = button.renderToString({ label: 'Click me!' }); // <-- does not work
console.log(html);
}
//... more code
}
J'exige le composant comme indiqué ici: http://markojs.com/docs/rendering/#rendering
J'utilise aussi Lasso, je soupçonne que cela pourrait être la raison pour laquelle il ne fonctionne pas. Je soupçonne que le lasso n'emballe pas le composant et ne l'envoie pas au client.
Je lis également ce qui suit: http://markojs.com/docs/lasso/#client-side-rendering
Pouvez-vous 'console.log (bouton)'? Les constantes ont une portée de bloc, donc 'button 'peut être indéfini dans la portée' onMount'. – Razzildinho
@Razzildinho Mis à jour! –
@Razzildinho Il ne semble pas trouver le module côté client. –