【发布时间】:2022-01-25 20:12:50
【问题描述】:
我正在尝试在我的代码中使用 if 语句,如果今天的日期已经发生以及我日历的过去几天打开,我希望它“打开”一个日历框。
这是我在加载 React 组件时使用 useEffect 发布的代码:
// Call on post method via axios
useEffect(async () => {
console.log(daysData);
const daysDay = daysData.map((day) => day.day);
console.log(daysDay);
if (date + 1 >= daysDay) {
// Url where to post
await axios.post(`http://localhost:5001/open/chocolate`, {
day: date,
});
alert('New day is available to eat!');
}
setOpenCalendarBox('');
}, []);
我正在尝试获取一个数组,我在 useEffect 函数 (daysData) 的上方启动了几行,我想要数组内部对象中的“day”项的值,然后比较日期如果它等于或小于 daysDay(daysData 中的天项),则为今天的日期
这是我的数组的代码:
// Here I initalize the array with useState
const [daysData, setDaysData] = useState([]);
// Here is the port I'm fetching my array from.
useEffect(() => {
fetch('http://localhost:5001/chocolates')
.then((resp) => resp.json())
.then((data) => setDaysData(data));
}, []);
这里是日期代码:
// Initiate new Date
const current = new Date();
// Retrieve current day of the month
const date = current.getDate();
我似乎无法得到我想要的效果。我基本上只想看看这一天是否已经过去,或者如果是今天,那么我希望它发布到'/open/chocolate'。
【问题讨论】:
标签: javascript arrays reactjs use-effect