第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何根據(jù) If 條件的結果渲染 React 組件?

如何根據(jù) If 條件的結果渲染 React 組件?

梵蒂岡之花 2022-12-22 15:32:11
有什么簡單的方法可以根據(jù) if 條件的結果將 React 組件渲染到 App.js 中?我有時鐘應用程序,當我定義的鬧鐘值等于當前時間時,它應該“響鈴”。這個“響鈴”效果我想成為另一個組件,例如 Ring.js 將在當前時間等于鬧鐘時間時呈現(xiàn),并且它將包含來自狀態(tài) a 的文本我可以通過單擊按鈕簡單地卸載它。這是我的函數(shù),它每秒調用一次,以檢查 alarmHours 狀態(tài)是否有值。  function checkTime(){   if(time.alarmHours && time.alarmMinutes){    if(time.currentHour === time.alarmHours && time.currentMinute === time.alarmMinutes &&      time.currentSecond === '00'){      //VALUES ARE EQUAL ,ALARM IS RINGING,RENDER COMPONENT     }    }   }我的第一個想法是創(chuàng)建空變量,如果滿足條件,只需將 Ring.js 組件插入該變量即可。let ring;function checkTime(){  if(time.alarmHours && time.alarmMinutes){    if(time.currentHour === time.alarmHours && time.currentMinute === time.alarmMinutes &&     time.currentSecond === '00'){      ring = <Ring />    }  }}然后,只需在 App.js 的 Return() 中渲染該變量,就像這樣。Return(  <div>    {ring}  </div>)但它不起作用,什么都沒有呈現(xiàn)。我試圖查看官方 React 文檔,他們提供的示例很少,但我真的不知道如何在我的案例中實施該方法。如果滿足該條件,我不知道如何呈現(xiàn)該組件。有人可以幫我嗎?我會很感激的。謝謝你。codesandbox 鏈接:https ://codesandbox.io/s/rough-paper-xv0wi?file=/src/App.js
查看完整描述

2 回答

?
慕慕森

TA貢獻1856條經(jīng)驗 獲得超17個贊

如果準備就緒,我會更新您的checkTime()函數(shù)以返回<Ring />,否則返回 null 然后您可以:


return (

  <div>

    {checkTime()}

  </div>

);

IE


function checkTime(){

  if(time.alarmHours && time.alarmMinutes){

    if(time.currentHour === time.alarmHours && time.currentMinute === time.alarmMinutes && 

    time.currentSecond === '00'){

      return <Ring />

    }

  }


  return null;

}

ring不再需要。


編輯:評論中的附加問題


如果您想Ring顯示何時達到鬧鐘時間,我會更改模式并引入一個新的布爾狀態(tài)值,例如const [showRing, setShowRing] = React.useState(false)最初設置為 false 的值。checkTime()然后將不再返回任何 JSX 并且只是調用setShowRing(true)然后你會:


return (

  <div>

    {showRing && <Ring />}

  </div>

);

IE


function checkTime(){

  if(time.alarmHours && time.alarmMinutes){

    if(time.currentHour === time.alarmHours && time.currentMinute === time.alarmMinutes && 

    time.currentSecond === '00'){

      setShowRing(true);

    }

  }

}

無論你想刪除<Ring />你會打電話setShowRing(false)


查看完整回答
反對 回復 2022-12-22
?
瀟湘沐

TA貢獻1816條經(jīng)驗 獲得超6個贊

試試這個:


let ring = <Ring />;


function checkTime(){

  if(time.alarmHours && time.alarmMinutes){

    if(time.currentHour === time.alarmHours && time.currentMinute === time.alarmMinutes && 

    time.currentSecond === '00'){

      return true;

    }

  }

   return false;

}

...


return (

  <div>

   {checktime() ? ring : null}

  </div>

)


查看完整回答
反對 回復 2022-12-22
  • 2 回答
  • 0 關注
  • 138 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號