zuz*_*zuu 0 javascript conditional-operator reactjs
我如何在三元运算符中调用两个函数?\n我尝试通过添加 && 但随后它只调用第一个函数并忽略第二个函数。
\ne.g.\nsetState(date) && dispatch(paypal_error({ time: date }))\nRun Code Online (Sandbox Code Playgroud)\n这是完整的代码
\nconst handleDateChange = (date) => {\n setDisablePing(true);\n const minutes = parseInt(dayjs(date).format('HH') * 60) +\n parseInt(dayjs(date).format('m'))\n\n if(minutes > pauseStartMin && minutes < pauseEndMin){\nsetState(\n new Date(0, 0, 0, pauseEndHour, pauseEndMinute + deliveryTime)\n ),\n dispatch(\n paypal_error({\n time: new Date(\n 0,\n 0,\n 0,\n pauseEndHour,\n pauseEndMinute + deliveryTime\n ),\n }),\n \n toast.error(\n `Zurzeit Pause. Bestellungen ab ${dayjs(\n newPauseEndHour.toString(),\n 'H'\n ).format('HH')}:${dayjs((newPauseEndMin + 1).toString(), 'm').format(\n 'mm'\n )} Uhr wieder m\xc3\xb6glich`,\n {\n position: toast.POSITION.BOTTOM_RIGHT,\n }\n )\n }else{\n setState(date);\n dispatch(paypal_error({ time: date }))\n }\n };\nRun Code Online (Sandbox Code Playgroud)\n
使用逗号运算符。
(setState(date), dispatch(paypal_error({ time: date })))
Run Code Online (Sandbox Code Playgroud)
你的函数中有 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 }))
);
};
Run Code Online (Sandbox Code Playgroud)
但这里不需要三元运算符,只需使用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 }));
};
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
296 次 |
| 最近记录: |