我试图使用koa和fluxible-router。 大多数表达示例使用类似的模式,但随后将send()直接用于navigateAction。
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;

我发现填充道具的唯一方法是在executeAction()中运行renderToString(),但它会异步执行,以便console.log(' 2')之前执行console.log(' 1')和返回的正文为空。
我不知道有任何方法可以等待renderToString,也无法在正确的上下文中运行renderToString()。
感谢
答案 0 :(得分:0)