Reputation: 2094
I've created a fake payload data for my app and I'm testing going through the payload with map() function. However while I can return correct number of divs after mapping with some of the data correct I cant find proper configuration for returning a payload ID. What am I doing wrong?
Database looks like this:
export default [
{
payloadId: 0,
drugsId:[0, 29],
lat: 51.760549449821696,
lon: 19.403501300000016
},
{
payloadId: 1,
drugsId:[3],
lat: 52.760549449821696,
lon: 17.403501300000016
},
{
payloadId: 2,
drugsId:[5, 19, 14, 31],
lat: 53.760549449821696,
lon: 29.403501300000016
},
{
payloadId: 3,
drugsId:[3, 9],
lat: 53.760549449821696,
lon: 16.403501300000016
}
]
My react component where I render the random payload looks like this (all correct data is passed from the parent):
import React from 'react';
class WherepothecaryPanel extends React.Component{
render(){
const fakePayload = this.props.fakePayload;
const rngPayloadId = Math.floor(Math.random()*4);
console.log('Random payload id', rngPayloadId)
const payload = fakePayload.map(payload =>{
if(payload.payloadId === rngPayloadId){
return payload.drugsId.map(drug => {
return <div> Drug ID: {drug.drugsId}, lat: {payload.lat}, lon: {payload.lon} </div>
})
}
})
return(
<div>
<div id='wherepothecaryPanel' className='col-xs-8'>
{payload}
</div>
</div>
)
}
}
export default WherepothecaryPanel
In this configuration my return looks like this for example:
Drug ID: , lat: 51.760549449821696, lon: 19.403501300000016
Drug ID: , lat: 51.760549449821696, lon: 19.403501300000016
Upvotes: 2
Views: 51
Reputation: 125
Try:
const payload = fakePayload.map(payload =>{
if(payload.payloadId === rngPayloadId){
// you are mapping through ids, so just have to use as value {id}
return payload.drugsId.map(id => {
return <div> Drug ID: {id}, lat: {payload.lat}, lon: {payload.lon} </div>
})
}
})
Upvotes: 5