我仍然不想使用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>
)
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句