带有换行符和标签插值 ES5 的 Reflux 存储数据渲染
Reflux store data rendering with line breaks and tag interpolation ES5
我不想使用 Babel/ES6 因为一些原因。我一直在 react/reflux 上观看 egghead.io 视频,我正在渲染这里的一个组件。它连接到 randomuser API 并将 10 个用户拉入商店,当商店更新时它会将用户数据呈现到页面上。使用视频中显示的 ES6 代码,它允许很好地插值标签,所以但在我的例子中,我只是使用 lodash 作为 _.map,它的操作略有不同,我无法找到一种方法来渲染标签插值或甚至换行符,因为 React 将元素呈现为包含在其自己的 span 标签中的一个父标签的所有子标签。
呈现的代码如下所示:
我的代码在这里:
var React = require('react');
var Reflux = require('reflux');
var request = require('superagent');
var _ = require('lodash');
var store = Reflux.createStore({
data: {users:[]},
init: function(){
request
.get("http://api.randomuser.me/?results=10")
.end(function(err,res){
if(err){
console.log(err)
}else {
var FirstName = res.body.results[0].user.name.first;
var LastName = res.body.results[0].user.name.last;
var picture = res.body.results[0].user.picture.thumbnail;
store.trigger({users:res.body.results})
}
});
},
getInitialState(){
return this.data;
}
});
var Name = React.createClass({
mixins:[Reflux.connect(store)],
render: function(){
return(
<div>
{_.map(this.state.users,function(n){
fName=n.user.name.first
lName=n.user.name.last
picture = n.user.picture.thumbnail;
return ""+fName+" "+lName + " " + picture
})
}
</div>
)
}
});
React.render(<Name />, document.getElementById('users'));
如有任何建议或建议,我们将不胜感激! egghead.io 视频也是一流的,我必须给予应有的赞扬!
就个人而言,我尽量避免在 JSX 标签中进行插值。 JSX 为您构建 DOM 元素提供了非常可靠的 API!在这种情况下,我会这样做:
render: function() {
var userElements = _.map(this.state.users,function(n){
var fName=n.user.name.first
var lName=n.user.name.last
var pictureURL = n.user.picture.thumbnail;
return (
<div className='user'>
<span className='first-name'>{fname}</span>
<span className='last-name'>{lname}</span>
<img className='picture' src={pictureURL}></img>
</div>
)
})
return (
<div className='user-container'>
{userElements}
</div>
)
}
我不想使用 Babel/ES6 因为一些原因。我一直在 react/reflux 上观看 egghead.io 视频,我正在渲染这里的一个组件。它连接到 randomuser API 并将 10 个用户拉入商店,当商店更新时它会将用户数据呈现到页面上。使用视频中显示的 ES6 代码,它允许很好地插值标签,所以但在我的例子中,我只是使用 lodash 作为 _.map,它的操作略有不同,我无法找到一种方法来渲染标签插值或甚至换行符,因为 React 将元素呈现为包含在其自己的 span 标签中的一个父标签的所有子标签。
呈现的代码如下所示:
我的代码在这里: var React = require('react'); var Reflux = require('reflux'); var request = require('superagent'); var _ = require('lodash');
var store = Reflux.createStore({
data: {users:[]},
init: function(){
request
.get("http://api.randomuser.me/?results=10")
.end(function(err,res){
if(err){
console.log(err)
}else {
var FirstName = res.body.results[0].user.name.first;
var LastName = res.body.results[0].user.name.last;
var picture = res.body.results[0].user.picture.thumbnail;
store.trigger({users:res.body.results})
}
});
},
getInitialState(){
return this.data;
}
});
var Name = React.createClass({
mixins:[Reflux.connect(store)],
render: function(){
return(
<div>
{_.map(this.state.users,function(n){
fName=n.user.name.first
lName=n.user.name.last
picture = n.user.picture.thumbnail;
return ""+fName+" "+lName + " " + picture
})
}
</div>
)
}
});
React.render(<Name />, document.getElementById('users'));
如有任何建议或建议,我们将不胜感激! egghead.io 视频也是一流的,我必须给予应有的赞扬!
就个人而言,我尽量避免在 JSX 标签中进行插值。 JSX 为您构建 DOM 元素提供了非常可靠的 API!在这种情况下,我会这样做:
render: function() {
var userElements = _.map(this.state.users,function(n){
var fName=n.user.name.first
var lName=n.user.name.last
var pictureURL = n.user.picture.thumbnail;
return (
<div className='user'>
<span className='first-name'>{fname}</span>
<span className='last-name'>{lname}</span>
<img className='picture' src={pictureURL}></img>
</div>
)
})
return (
<div className='user-container'>
{userElements}
</div>
)
}