現在、node.js + Express ビルドに同形反応コンポーネントを実装しようとしています。ただし、上記のコンポーネントを jade テンプレートに含めてレンダリングしようとすると、次のエラーが発生します: TypeError: Can't add property context, object is not extensible
ここに私のルートファイルがあります:
var express = require('express');
var router = express.Router();
var React = require('react/addons'),
ReactApp = React.createFactory(require('../../react/components/ReactApp'));
/* GET home page. */
router.get('/', function(req, res, next) {
var reactAppEl = ReactApp();
console.log(reactAppEl);
var reactHtml = React.renderToString(reactAppEl);
res.render('index', { reactOutput: reactHtml });
});
module.exports = router;
コンポーネント:
/** @jsx React.DOM */
var React = require('react/addons');
/* create factory with griddle component */
var Griddle = React.createFactory(require('griddle-react'));
var fakeData = require('../data/fakeData.js').fakeData;
var columnMeta = require('../data/columnMeta.js').columnMeta;
var resultsPerPage = 200;
var ReactApp = React.createClass({
componentDidMount: function () {
console.log(fakeData);
},
render: function () {
return (
<div id="table-area">
<Griddle results={fakeData}
columnMetadata={columnMeta}
resultsPerPage={resultsPerPage}
tableClassName="table"/>
</div>
)
}
});
/* Module.exports instead of normal dom mounting */
module.exports = ReactApp;
また、私のgulpタスクは警告をスローします:コンポーネント(...):render
返されたコンポーネントインスタンスにメソッドが見つかりません:コンポーネントで定義するのを忘れたrender
か、タイプが関数である要素を誤ってレンダリングしようとした可能性がありますそれは React コンポーネントではありません。警告: React 要素の props プロパティを設定しないでください。代わりに、要素を最初に作成するときに正しい値を指定してください。
誰でも私を助けることができますか?どうもありがとう