0
JSON响应访问嵌套阵列:ReactJs - 在JSON响应
Bars: [
{
id: "7",
name: "The Trestle Inn",
address: "339 N 11th St",
city: "Philadelphia",
state: "PA",
category: "Dive Bar",
checkIn: [
{
wait: "0.1",
vibe: "0.35",
crowd: "0.5"
}
],
eventname: "0"
},
{
id: "9",
name: "McGillin's Olde Ale House",
address: "1310 Drury Street",
city: "Philadelphia",
state: "PA",
category: "Pub",
checkIn: [
{
wait: "0.1",
vibe: "0.4",
crowd: "0.2"
}
],
eventname: "0"
},
我使用ReactJs,并且试图通过 “栏” 来迭代,拔数据。我可以成功访问第一层响应,例如名称和地址,但是我无法处理子数组“checkIn”,我想在其中为“vibe”,“wait”和“crowd”拉取值, 。
var WebApp = React.createClass({
\t componentDidMount: function(){
\t \t this.loadFavoritesData();
\t },
\t render: function(){
\t \t return(
\t \t \t \t \t \t <div>
\t \t \t \t \t \t \t <Favorites favoritesData={this.state.favoritesData} />
\t \t \t \t \t \t \t <Newsfeed />
\t \t \t \t \t \t </div>
\t \t \t)
\t }
});
var Favorites = React.createClass({
\t render: function(){
\t \t //console.log(this.props.favoritesData);
\t \t var favoriteNodes = this.props.favoritesData.map(function(favorite, index){
\t \t \t var checkInNodes = favorite.checkIn.map(function(data){
\t \t \t \t //console.log(data.vibe);
\t \t \t \t return {data}
\t \t \t });
\t \t \t console.log(checkInNodes.vibe);
\t \t \t
\t \t \t return(
\t \t \t \t \t \t <Favorite
\t \t \t \t \t \t name={favorite.name}
\t \t \t \t \t \t address={favorite.address}
\t \t \t \t \t \t key={index}
\t \t \t \t \t \t vibe={checkInNodes.vibe}
\t \t \t \t \t \t />
\t \t \t \t)
\t \t });
\t \t return(
\t \t \t \t \t <div>
\t \t \t \t \t \t \t <h2 className="page-header">Favorite Bars</h2>
\t \t \t \t \t \t \t {favoriteNodes}
\t \t \t \t \t </div>
\t \t \t)
\t }
});
var Favorite = React.createClass({
\t render: function(){
\t \t return(
\t \t \t \t <div className="favoriteItem">
\t \t \t \t \t <h4>{this.props.name}</h4>
\t \t \t \t \t <p>{this.props.address}</p>
\t \t \t \t \t <p>Vibe: {this.props.vibe}</p>
\t \t \t \t </div>
\t \t \t)
\t }
});
我最初想我可以在收藏夹组件内的第一个地图功能中访问它,但试图像下面这样的时候,我得到了favorite.checkIn.vibe一个未定义的结果但如果我CONSOLE.LOG(favorite.checkIn)我将返回对象,再次,我似乎无法潜入
var Favorites = React.createClass({
\t render: function(){
\t \t var favoriteNodes = this.props.favoritesData.map(function(favorite, index){
\t \t \t console.log(favorite.checkIn.vibe);
\t \t \t return(
\t \t \t \t \t \t <Favorite
\t \t \t \t \t \t name={favorite.name}
\t \t \t \t \t \t address={favorite.address}
\t \t \t \t \t \t key={index}
\t \t \t \t \t \t vibe={favorite.checkIn.vibe}
\t \t \t \t \t \t />
\t \t \t \t)
\t \t });
顺便说一句,你的代码真的很难阅读所有的标签。你可以进入你的编辑器来交换空格标签并将它们设置为2或4个空格的顶端。或者,您可以在Mac或Linux机器上打开vim:'''vim [filename]'''然后'':%s/TAB/TWO_SPACES/g'''(除了按Tab键并按两次空格键)然后''':wq''',它将交换所有标签的空格 –
感谢您的回答,以及提示!我无法更改源数据,因此我会考虑您提供的第二个选项,看看我可以做什么 – trm313
你有它的人。 –