2017-09-05 47 views
1

我有這樣的代碼:在JavaScript中執行地圖內的地圖?

_renderChannels() { 
    return this.state.channelsData.map(channelData => { 
     return this.state.channelsStreamData.map(channelStreamData => { 
      return <Channel channelData={channelData} channelStreamData={channelStreamData} /> 
     }) 
    }); 
    } 

我要地圖上通道部件的道具,但是通道組件將被返回反覆9次,當它應該是隻有3次?所以我想映射channelData和channelStreamData的數據並返回組件Channel。我嘗試刪除它內部的地圖,但是當我不返回時它不會返回。幫幫我?

+0

在第一個'.map'後面,用'(channelData,i)'替換'channelData',然後返回'' (你正在3循環內運行一個3循環,給你3x3元素) –

+0

@ChrisG對不起,我很困惑。我可以請你答覆嗎? –

回答

1

這應做到:

_renderChannels() { 
    return this.state.channelsData.map((channelData, i) => <Channel 
     channelData={channelData} 
     channelStreamData={this.state.channelStreamData[i]} 
    />); 
} 

我已經添加i,指標參數。這樣我就可以從this.state.channelStreamData陣列中獲取相同的元素。

+0

正在發出兩個ajax請求並且必須分開。沒有想到這種方式。謝謝 –