Я пытаюсь использовать koa с флюксируемым маршрутизатором. В большинстве экспресс-примеров используется аналогичный шаблон, но затем используйте send() непосредственно в navigateAction.Написание koa промежуточного программного обеспечения для флюксируемого маршрутизатора (async executeAction)
React.renderToString() получить правильный реквизит, просто курица, вызванная в контексте executeAction.
'use strict';
var React = require('react');
var app = require('./app');
var navigateAction = require('fluxible-router').navigateAction;
function render() {
return function *render(next) {
var context = app.createContext(
{
req: this.request
, xhrContext: {
_csrf: 'pino'
}
}
);
var html = null;
context.executeAction(navigateAction, {
method: this.request.method
, url: this.request.url
}, function (err) { // this function is executed asyncronously
console.log('1');
var html = React.renderToString(context.createElement());
});
this.body = html;
console.log('2');
yield* next;
}
}
module.exports = render;
Единственный способ я нашел, чтобы получить реквизит заселенных был бежать renderToString() внутри ExecuteAction(), но получить выполнен асинхронном, так что console.log ('2') выполняйте его до console.log ('1'), а возвращаемое тело - null.
Я не знаю, как ждать рендеринга и любого способа запустить renderToString() в правильном контексте.
благодаря