如何在反应中显示从快速路由器传递到视图的数据?
How can I display data passed to the view from the express router in react?
路由代码:
router.get('/', function(req, res) {
res.render('index', {username: req.session['passport']['user']['username']});
}
在我的 jade 模板中,我可以很容易地显示这样的数据:
h2= username
我想在我的 React 组件中显示此用户名对象,如下所示:
var Account = React.createClass({
render: function(){
return (
<h2>
{username}
</h2>
)
}
});
如何将此信息传递到我的 React 组件?谢谢
您可以通过多种方式获取此数据。
要么将数据嵌入到 DOM 或 script
标签中,然后在加载脚本后渲染 React 组件,从 DOM 中获取数据.
<div class="data" style="display: none;" data-data="YOUR DATA GOES HERE STRINGIFIED" />
React.render(<YourComponent data={document.querySelector('.data').dataset.data} />, document.querySelector('.yourContainer'));
或打开数据的端点
router.get('/myData', function(req, res) {
res.render({username: req.session['passport']['user']['username']});
}
然后在你的组件中,使用生命周期方法componentDidMount
获取它。
componentDidMount: function () {
someAjaxLib.get('/myData').success(function (data) {
this.setState({data: data});
}.bind(this));
}
路由代码:
router.get('/', function(req, res) {
res.render('index', {username: req.session['passport']['user']['username']});
}
在我的 jade 模板中,我可以很容易地显示这样的数据:
h2= username
我想在我的 React 组件中显示此用户名对象,如下所示:
var Account = React.createClass({
render: function(){
return (
<h2>
{username}
</h2>
)
}
});
如何将此信息传递到我的 React 组件?谢谢
您可以通过多种方式获取此数据。
要么将数据嵌入到 DOM 或 script
标签中,然后在加载脚本后渲染 React 组件,从 DOM 中获取数据.
<div class="data" style="display: none;" data-data="YOUR DATA GOES HERE STRINGIFIED" />
React.render(<YourComponent data={document.querySelector('.data').dataset.data} />, document.querySelector('.yourContainer'));
或打开数据的端点
router.get('/myData', function(req, res) {
res.render({username: req.session['passport']['user']['username']});
}
然后在你的组件中,使用生命周期方法componentDidMount
获取它。
componentDidMount: function () {
someAjaxLib.get('/myData').success(function (data) {
this.setState({data: data});
}.bind(this));
}