मैं ReactJS में useEffect हुक में एक नेस्टेड टर्नरी सशर्त रखने की कोशिश कर रहा हूं। मैंने इसे पहले बिना किसी समस्या के उपयोग के प्रभाव हुक के बाहर किया है, लेकिन किसी कारण से यह यहां काम नहीं करता है।

मेरा कामकाजी कोड इस तरह दिखता है:

 useEffect(() => {
    if (myState != '') {
      checkbox ? (
        trueFunction()
      ) : (
        falseFunction
        )
    }
  }, [x]);

यह अपेक्षा के अनुरूप काम करता है। जब मैं इसे टर्नरी ऑपरेटरों के साथ करने का प्रयास करता हूं तो यह मेरे किसी भी कार्य को अंदर निष्पादित नहीं करता है।

 useEffect(() => {
    myState != '' ?? (
      checkbox ? (
        trueFunction()
      ) : (
        falseFunction
        )
    )
  }, [x]);
1
emha 7 जिंदा 2021, 19:12

2 जवाब

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

चूँकि myState != '' हमेशा true या false वापस आएगा, आप Nullish coescing ऑपरेटर (??) का उपयोग अनुपयुक्त कर रहे हैं, दस्तावेज़ीकरण पर एक नज़र डालें => https://developer.mozilla.org/en- यूएस/दस्तावेज़/वेब/जावास्क्रिप्ट/संदर्भ/संचालक/नलिश_कोलेसिंग_ऑपरेटर

1
novarx 7 जिंदा 2021, 19:24

या तो यह

useEffect(() => {
    myState != '' && (
      checkbox ? trueFunction() : falseFunction()
    )
  }, [x]);

या

useEffect(() => {
    myState != '' ? (
      checkbox ? trueFunction() : falseFunction()
    ) : null
  }, [x]);
1
Ignacio Elias 7 जिंदा 2021, 19:20