मैं अपने सिर को नेस्टेड टर्नरी ऑप्स के चारों ओर लपेटने की कोशिश कर रहा हूं।

ColorVariant का मान या तो 'सफलता', 'जानकारी', 'त्रुटि' या 'डिफ़ॉल्ट' होता है।

props.colorVariant == 'success' ? 'green' : 'info' ? 'gray' : 'error' ? 'red' : 'default' ? 'black' : 'purple'

फिलहाल, मैंने मान को 'डिफ़ॉल्ट' पर सेट कर दिया है क्योंकि मैं इसे अंत तक सभी तरह से देखना चाहता हूं, लेकिन जैसा कि यह खड़ा है, लौटाया जा रहा रंग ग्रे है।

क्या कोई समझा सकता है कि ऐसा क्यों है?

-2
Daniel Cutter 24 नवम्बर 2020, 20:54

4 जवाब

सबसे बढ़िया उत्तर

आपको प्रत्येक स्थिति में तुलना करनी होगी, जैसे:

props.colorVariant == 'success'
  ? 'green'
  : props.colorVariant === 'info'
    ? 'gray'
    : props.colorVariant === 'error'
       ? // ...

लेकिन यहां किसी वस्तु का उपयोग करने के लिए यह और अधिक समझ में आता है:

const colorsByVariant = {
  success: 'green',
  info: 'gray',
  error: 'red',
  default: 'black',
};
const color = colorsByVariant[props.colorVariant] ?? 'purple';
5
CertainPerformance 24 नवम्बर 2020, 20:57
props = {colorVariant: ''} // just here for the demo

const color = props.colorVariant == 'success' ? 'green' :
props.colorVariant == 'info' ? 'gray' :
props.colorVariant == 'error' ? 'red' :
props.colorVariant == 'default' ? 'black' : 'purple';

console.log('color:', color); // purple
props.colorVariant == 'success' ? 'green' : props.colorVariant == 'info' ? 'gray' : props.colorVariant == 'error' ? 'red' : props.colorVariant == 'default' ? 'black' : 'purple'
0
F. Müller 24 नवम्बर 2020, 21:29

: के बाद आपको यह शर्त दोहरानी होगी की बजाय

    props.colorVariant == 'success' ? 'green' : 'info' ? 'gray' : 'error' ? 'red' : 'default' ? 'black' : 'purple'

आपको निम्न कार्य करना चाहिए

props.colorVariant == 'success' ? 'green' : props.colorVariant == 'info' ? 'gray' : props.colorVariant == 'error' ? 'red' : props.colorVariant == 'default' ? 'black' : 'purple'

फिलहाल आपको 'ग्रे' मिलता है क्योंकि:

props.colorVariant, success से अलग है, फिर यह info पर जाता है, लेकिन कोई शर्त नहीं है, इसलिए यह सच है (क्योंकि एक स्ट्रिंग को बूलिकन में डाला जाता है, यह हमेशा सत्य होता है) तो आपको gray

0
IsraGab 24 नवम्बर 2020, 20:59

आपको चर के खिलाफ जांच करने की आवश्यकता है। यदि नहीं पहली खाली स्ट्रिंग सत्य नहीं है।

props.colorVariant === 'success'
    ? 'green'
    : props.colorVariant === 'info'
        ? 'gray'
        : props.colorVariant === 'error'
            ? 'red'
            : props.colorVariant === 'default'
                ? 'black'
                : 'purple'
0
Nina Scholz 24 नवम्बर 2020, 20:58