Map函数没有't迭代所有子项
Map function doesn't iterate all children
我正在为一个应用程序构建一个侧边栏,它由较小的元素组成。现在遇到了一个问题,即侧边栏子元素数组没有完全迭代,尽管每个子元素都由一个唯一的键组成。我觉得这可能和钥匙有关
边栏元素组件:
var AppSidebar = React.createClass({
getInitialState: function() {
return {
children: []
};
},
getPlaylists: function() {
var that = this;
// returns array of objects
spotify.getMePlaylists(function(err, playlists) {
if(err)
console.error(err);
that.setState({
children: playlists
});
});
},
componentDidMount: function() {
this.getPlaylists();
},
render: function() {
// iterates all children
this.state.children.map(function(playlist) {
console.log(1, playlist.id, playlist.name);
});
var playlists = this.state.children;
return (
<div id="sidebar">
playlists.map(function(playlist) {
// only returns first playlist id and name
console.log(2, playlist.id, playlist.name);
return (<AppSidebarElement key={playlist.id} {...playlist} />);
})}
</div>
);
}
});
边栏组件:
var AppSidebarElement = React.createClass({
render: function() {
return (
<div className="playlist">
{this.props.name}
</div>
);
}
});
控制台输出:
1 "75dwLdmL07hDEDWqX17QeE" "The Indie Mix"
1 "2wOXCZ6fJAjpekKlnbg49F" "Interesting artists"
1 "6ULfvJbsdzF7u14dBZo9w1" "chsshhh"
1 "4LJ5hkgqt04IKw454SUJqV" "Motivational Songs"
1 "75if3ukZz2tPS60IVMPhw6" "Best of the Suits Soundtrack"
...
2 "69H6RgTVs1jrv1IuuLe1a5" "Deep Dark Indie"
问题是由我在将其发布到堆栈溢出时清理的代码引起的,它与在映射函数上下文中调用错误的this
有关。
相关文章:
- JS:检查URL中的参数,然后迭代一个参数为var的函数
- 如何迭代Array.prototype函数
- Map函数没有't迭代所有子项
- 在HTML集合上迭代,以便在构造函数中动态定义值
- 如何在 JavaScript 中动态地编写可迭代的函数数组
- 函数崩溃,因为太多迭代jQuery
- DOM:如何根据迭代器值设置元素宽度并在mouseover上调用函数
- 迭代node.js请求函数
- 如何将这个递归函数转换为迭代函数
- jQuery使用不同的参数多次迭代函数
- 有没有办法迭代函数作用域内的公共方法
- 在带有句柄的迭代函数(每个)中传递参数类型对象
- 在AngularJS中使用ng repeat调用和迭代函数返回值
- 在JavaScript中存储和迭代函数指针
- 在ANGULAR中迭代函数
- 如何在jQuery中编写这个JavaScript迭代函数?
- Javascript for循环直到循环结束才执行函数,然后迭代函数n次
- 在循环中迭代函数的形参
- 通过for循环迭代函数x次
- Jquery为每个动态添加的选择框迭代函数