スマートコンポーネントでonMount
がトリガーされたときにコンポーネントをレンダリングしようとしています。サーバーはコンポーネントを正しくレンダリングしているようですが、クライアント上でonMount
がトリガーされてレンダリングされないときは、簡単なundefined
が表示されます。ここに述べたように、私は部品を必要としています単純なクライアント側のレンダリングが機能しない
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
}
:http://markojs.com/docs/rendering/#rendering
私も投げ縄使用している、私はそれが働いていない理由は、これがあるかもしれないと思います。私は、lassoがコンポーネントをバンドルしてクライアントに送信していないと考えています。マルコv4の中に制限によるものですhttp://markojs.com/docs/lasso/#client-side-rendering
あなたは 'console.log(ボタン)'できますか?定数はブロックスコープであるため、 'onMount'スコープで' button'が定義されていない可能性があります。 – Razzildinho
@Razzildinho更新済み! –
@Razzildinhoクライアント側でモジュールが見つからないようです。 –