我正在使用 Sails 和 React 开发一个 Web 应用程序。我正在尝试从我的数据库中获取所有用户。因此,为了获取所有用户,我编写了以下代码
Sails 用户 Controller
index : function(req,res){
User.find()
.then(function(users){
renderTo(routes, req.wantsJSON, res, "/user" , {title: 'Users'}, {'users' : users});
}).catch(function(err){
return res.negotiate(err);
});
}
现在,为了接收用户数组,我的 React 代码是:
react 代码
var React = require('react');
var http = require('http');
var UserList = require('./userList');
var user = React.createClass({
render: function() {
return ( <UserList {...this.props} /> );
}
});
module.exports = user;
用户列表组件
var React = require('react');
var userList = React.createClass({
render: function() {
var createUserRow = function(user){
return (<tr key={user.id}>
<td>{user.id}</td>
<td>{user.firstName}</td>
<td>{user.lastName}</td>
<td>{user.email}</td>
</tr>);
};
return (
<div>
<table className="table table-stripped table-hover">
<thead>
<th>Id</th>
<th>First Name</th>
<th>Last Name</th>
<th>Email</th>
</thead>
<tbody>
{this.props.users.map(createUserRow)}
</tbody>
</table>
</div>
);
}
});
module.exports = userList;
我得到了预期的响应..但是它是这样的:
所以我的问题是,如何将用户列表传递到我的 UserList 组件
,该组件可在父组件中使用,如图所示。
最佳答案
最后,得到了答案..我所要做的就是将扩展属性 (...this.props)
传递给 React-Router 的 RouteHandler
,如下所示:
var App = React.createClass({
render: function() {
return (
<div>
<Header/>
<RouteHandler {...this.props}/>
</div>
);
}
});
希望这对遇到类似问题的人有所帮助。
关于node.js - Sails-React : Access props from Parent Component,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33295536/