我在調用函數時遇到問題。這個函數在主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 }))
如何在不同的組件中調用函數
慕標琳琳
2022-12-29 16:21:23