2 回答

TA贡献1856条经验 获得超17个赞
如果准备就绪,我会更新您的checkTime()函数以返回<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显示何时达到闹钟时间,我会更改模式并引入一个新的布尔状态值,例如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)

TA贡献1816条经验 获得超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>
)
添加回答
举报