亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

如何在不同的組件中調用函數

如何在不同的組件中調用函數

慕標琳琳 2022-12-29 16:21:23
我在調用函數時遇到問題。這個函數在主App.js文件中,它作為 prop 傳遞給不同的組件。如果表單驗證返回 true 但我的代碼不起作用,我需要調用此函數。App.js 中的函數  function getAlarm() {    let message = document.getElementById("text").value;    let hour = document.getElementById("hours").value;    let minute = document.getElementById("minutes").value;    //Add id to alarm    let id;        if(time.alarms.length > 0 ){      id = Math.max(...time.alarms.map((alarm) => alarm.id)) + 1    }else{      id = 1;    }    //Create new alarm object    const newAlarm = {      id: id,      message: message,      hour: hour,      minute: minute    };作為道具傳遞給組件<SetAlarm getInfo={getAlarm} />在這個組件中,我有一些小表格,其中有一些驗證。為了更好地理解,我還將向您展示表單和這些功能。形式<form onSubmit={validateForm}>    <FontAwesomeIcon       icon={faTimesCircle}       className="closeIcon"      onClick={() => setAlarm(false)} />    <h3>Please set your alarm</h3>    <label htmlFor="text">Message</label>    <input type="text" id="text" autoComplete="off" autoFocus="on" />    <div className="flex">      <div className="inputNumber">         <label htmlFor="hours">Hour</label>         <input type="number" id="hours" value={validate.hours} onChange={updateHours} />         <div id="errHours"></div>      </div>                                  <div className="inputNumber">         <label htmlFor="minutes">Minute</label>         <input type="number" id="minutes" onChange={updateMinutes} />         <div id="errMinutes"></div>      </div>    </div>    <button onClick={validateForm}>SET ALARM</button> </form>輸入元素具有onChange函數,該函數將其值發送到狀態。根據此值,將顯示驗證信號。(我的意思是如果條件返回 false,紅色邊框會出現,或者輸入警告)const [validate,setValidate] = useState({    message:'',    hours:'',    minutes:''})function updateHours(e){    let value = e.target.value;    let hours = document.getElementById('hours');    let errHours = document.getElementById('errHours');    setValidate(prevState => ({        ...prevState,       hours:value    }))
查看完整描述

1 回答

?
holdtom

TA貢獻1805條經驗 獲得超10個贊

<SetAlarm getInfo={getAlarm} />

在 SetAlarm 組件中


const SetAlarm = ({getInfo}) => {


  const validateForm = () => {

     getInfo(); // Do whatever you like to do with this 

  }


  return (

     <form onSubmit={validateForm}>

        


        <label htmlFor="text">Message</label>

        <input type="text" id="text" autoComplete="off" autoFocus="on" />


       

        <button type="submit">SET ALARM</button>

     </form>


  )


}


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

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號