Quiero consolidar estas declaraciones if para hacer esto lo más eficiente posible sin dejar de poder realizar el caso 1 solo, el caso 2 solo, el caso 1 y 2 juntos, y ni el caso 1 ni el caso 2. ¿Hay alguna manera de hacer esto? ?
if(x >= 100 && y < 100){ return( <View> <Text> this is case 1 </Text> </View> )} if(x < 100 && y >= 100){ return( <View> <Text> this is case 2 </Text> </View> )} if(x < 100 && y < 100){ return( <View> <Text> this is case 1 </Text> </View> <View> <Text> this is case 2 </Text> </View> )} if(x >= && y >= 100){ return( <View> <Text> this is case 4 </Text> </View> )}Pon tu valor de retorno en una variable que puedas concatenar para cada caso.
retval = ''; if (y < 100) { retval += <View> <Text> this is case 1 </Text> </View> ; } if (x < 100) { retval += <View> <Text> this is case 2 </Text> </View> ; } if (retval == '') { // neither case return( <View> <Text> this is case 4 </Text> </View> ); } else { return retval; }Puede recopilar las cadenas deseadas y devolver la colección formateada o el caso cuatro.
const take = []; if (x < 100) take.push('this is case 2'); if (y < 100) take.push('this is case 1'); return take.length ? take.map(/* your formatting */) : 'this is case 4';Prueba esto:
const el1 = ( <View> <Text> this is case 1 </Text> </View> ) const el2 = ( <View> <Text> this is case 2 </Text> </View> ) ... const conditions = { el1, el2, ... } if (x >= 100 && y < 100) return conditions.el1 else if (x < 100 && y >= 100) return conditions.el2 else if (x < 100 && y < 100) return conditions.el1 + conditions.el2 else return conditions.default || ''