私はReact/Expressアプリケーションのサーバーサイドレンダリングを設定しようとしていますが、 react-dom/server
renderToString()
メソッド。私は緩くこのチュートリアル以下のよ - http://crypt.codemancers.com/posts/2016-09-16-react-server-side-rendering/React/Express - renderToString()の呼び出しで '予期しないトークン<'が発生しました
index.js
(エクスプレスアプリのルート):
const appHtml = reactDomServer.renderToString(<RouterContext {...props}/>)
^
SyntaxError: Unexpected token <
私がきた同様の例のすべて:しかし
'use strict'
require('babel-register')({
presets: ['es2015', 'react']
});
const express = require('express')
const path = require('path')
const app = express()
const React = require('react')
const reactDomServer = require('react-dom/server')
const routes = require('./src/routes.jsx')
const reactRouter = require('react-router')
let { match, RouterContext } = reactRouter
app.get('*', (req, res) => {
match({ routes: routes, location: req.url }, (err, redirect, props) => {
const appHtml = reactDomServer.renderToString(<RouterContext {...props}/>)
res.send(renderPage(appHtml))
})
})
を、これはエラーが発生します真っ直ぐなJSXコンポーネントがドロップされているのを見ました...私は何が欠けていますか?
これを行うバックあなたの
index.js
で次にで新しい
renderReact.js
ファイルを作ります!私はそれが特に 'babel-register'の正しい振る舞いに対処するので、私は他の答えを受け入れましたが、これは良い答えでもあります。私はおそらく私の実際のアプリでこれを使用します。 – skwidbreth問題はありません@skwidbrethあなたが解決策を見つけてうれしく思います。 –