Tengo un método que verifica una variable de con como true o false y devuelve una etiqueta de dispositivo para cada dispositivo, solo pude obtener la primera etiqueta a pesar de que la segunda y la tercera condición son verdaderas. Cómo comprobar todas las condiciones y devolver todos los dispositivos.
function populateDevices(){ if(ethsrc[0].con === true) { return ethsrc .filter(i => i.srcid === 0) .map((i,idx) => ( <Device name={i.name} srcid={i.srcid} inst={idx} drt={i.drt} data={i.data} /> )) } if(ebmcard[0].con === true){ return ebmcard .filter(i => i.srcid === 0) .map((i,idx) => ( <Device name={i.name} srcid={i.srcid} inst={idx} drt={i.drt} data={i.data} /> )) } if(mi5module[0].con === true){ return mi5module .filter(i => i.srcid === 0) .map((i,idx) => ( <Device name={i.name} srcid={i.srcid} inst={idx} drt={i.drt} data={i.data} /> )) } }Tan pronto como realice una return , la función se detiene, todo lo que sigue no se ejecutará. Aunque podría usar una matriz de result , concatene con cada matriz para cada condición, así:
function populateDevices(){ let result = [] if(ethsrc[0].con === true) { result = result.concat(ehsrc .filter(i => i.srcid === 0) .map((i,idx) => ( <Device name={i.name} srcid={i.srcid} inst={idx} drt={i.drt} data={i.data} /> ))) } if(ebmcard[0].con === true){ result = result.concat( ebmcard .filter(i => i.srcid === 0) .map((i,idx) => ( <Device name={i.name} srcid={i.srcid} inst={idx} drt={i.drt} data={i.data} /> ))) } if(mi5module[0].con === true){ result = result.concat(mi5module .filter(i => i.srcid === 0) .map((i,idx) => ( <Device name={i.name} srcid={i.srcid} inst={idx} drt={i.drt} data={i.data} /> ))) } return result; }