मैं अपने सिर को नेस्टेड टर्नरी ऑप्स के चारों ओर लपेटने की कोशिश कर रहा हूं।
ColorVariant का मान या तो 'सफलता', 'जानकारी', 'त्रुटि' या 'डिफ़ॉल्ट' होता है।
props.colorVariant == 'success' ? 'green' : 'info' ? 'gray' : 'error' ? 'red' : 'default' ? 'black' : 'purple'
फिलहाल, मैंने मान को 'डिफ़ॉल्ट' पर सेट कर दिया है क्योंकि मैं इसे अंत तक सभी तरह से देखना चाहता हूं, लेकिन जैसा कि यह खड़ा है, लौटाया जा रहा रंग ग्रे है।
क्या कोई समझा सकता है कि ऐसा क्यों है?
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';
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'
:
के बाद आपको यह शर्त दोहरानी होगी की बजाय
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
आपको चर के खिलाफ जांच करने की आवश्यकता है। यदि नहीं पहली खाली स्ट्रिंग सत्य नहीं है।
props.colorVariant === 'success'
? 'green'
: props.colorVariant === 'info'
? 'gray'
: props.colorVariant === 'error'
? 'red'
: props.colorVariant === 'default'
? 'black'
: 'purple'