如何在三元運算子中呼叫兩個函式?我通過添加 && 來嘗試它,但它只呼叫第一個函式并忽略第二個函式。
e.g.
setState(date) && dispatch(paypal_error({ time: date }))
這是完整的代碼
const handleDateChange = (date) => {
setDisablePing(true);
const minutes = parseInt(dayjs(date).format('HH') * 60)
parseInt(dayjs(date).format('m'))
if(minutes > pauseStartMin && minutes < pauseEndMin){
setState(
new Date(0, 0, 0, pauseEndHour, pauseEndMinute deliveryTime)
),
dispatch(
paypal_error({
time: new Date(
0,
0,
0,
pauseEndHour,
pauseEndMinute deliveryTime
),
}),
toast.error(
`Zurzeit Pause. Bestellungen ab ${dayjs(
newPauseEndHour.toString(),
'H'
).format('HH')}:${dayjs((newPauseEndMin 1).toString(), 'm').format(
'mm'
)} Uhr wieder m?glich`,
{
position: toast.POSITION.BOTTOM_RIGHT,
}
)
}else{
setState(date);
dispatch(paypal_error({ time: date }))
}
};
uj5u.com熱心網友回復:
使用逗號運算子。
(setState(date), dispatch(paypal_error({ time: date })))
你的函式中有不屬于那里的 JSX。去掉它:
const handleDateChange = (date) => {
parseInt(dayjs(date).format('HH') * 60)
parseInt(dayjs(date).format('m')) >
pauseStartMin &&
parseInt(dayjs(date).format('HH') * 60)
parseInt(dayjs(date).format('m')) <
pauseEndMin ? (
setState(new Date(0, 0, 0, pauseEndHour, pauseEndMinute deliveryTime)),
dispatch(paypal_error({
time: new Date(
0,
0,
0,
pauseEndHour,
pauseEndMinute deliveryTime
),
}))
) : (
setState(date), dispatch(paypal_error({ time: date }))
);
};
但是這里不需要三元運算子,只需使用if-else,它更容易閱讀:
const handleDateChange = (date) => {
const minutes = parseInt(dayjs(date).format('HH') * 60)
parseInt(dayjs(date).format('m'));
if (minutes > pauseStartMin &&
minutes < pauseEndMin) {
setState(new Date(0, 0, 0, pauseEndHour, pauseEndMinute deliveryTime));
dispatch(paypal_error({
time: new Date(
0,
0,
0,
pauseEndHour,
pauseEndMinute deliveryTime
),
}));
} else {
setState(date);
dispatch(paypal_error({ time: date }));
};
};
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/526256.html
上一篇:Redux中的多個輸入
