2015-06-18 3 views
0

Я пытаюсь использовать 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() в правильном контексте.

благодаря

ответ

 Смежные вопросы

  • Нет связанных вопросов^_^