我目前正在学习反应和自定义钩子,我得到了这个,不知道在这种情况下它应该如何有一个自定义钩子,应该返回什么,我必须返回什么?,任何帮助将不胜感激,谢谢你提前
const [newResultDate, setNewResultDate] = useState<Date>(
(() => {
if (value?.startDate) {
return new Date(value.startDate);
} else if (value?.daysUpToDay) {
return new Date();
}
try {
const date = new Date(value);
if (date && date.toString() !== 'Invalid Date') {
return date;
}
} catch (e) {
// noop
}
return new Date();
})()
);
可能的自定义钩子:
const useCustomHook = (dateFilter: ( dateProps)) => {
const [newResultDate, setNewResultDate] = useState<Date>();
const setDateValue = (val) => setNewResultDate(val);
if (dateFilter?.startDate) {
setNewResultDate(new Date(dateFilter.startDate));
} else if (dateFilter?.daysUpToDay) {
setNewResultDate(new Date());
}
try {
const date = new Date(dateFilter as any);
if (date && date.toString() !== 'Invalid Date') {
setNewResultDate(date);
}
} catch (e) {
// noop
}
setNewResultDate(new Date());
return [newResultDate, setDateValue] as const;
};
is this correct?
how is supposed to be used on my component?