如果用户选择了一个开始日期,我希望默认情况下结束日期也是同样的。然后,如果用户想要更改结束日期,他可以这样做。
目前,我可以选择开始日期和结束日期。
并且对我的日期设置条件,即不能设置早于开始日期的结束日期。
以下是我的代码:
并且对我的日期设置条件,即不能设置早于开始日期的结束日期。
以下是我的代码:
export default function SelectionChoice({ next, selChoice2, setSelChoice2 }) {
const [summary, setSummary] = useState("");
const [start, setStart] = useState("");
const [end, setEnd] = useState("");
const [selChoice1, setSelChoice1] = useState();
const [data, setData] = useState([])
useEffect(() => {
myApi.functionA()
.then((res) => {
console.log(res);
setData(res.data.data);
})
.catch((err) => {
console.log(err);
});
}, []);
...
const choice1 = data?.map((item) => {
return {
label: item.name,
value: item.id
};
});
const choice2 = data?.flatMap((item) => {
return item.choice2.map((c) => ({
label: c.name,
value: c.id
}));
});
const textChange = (e) => {
if (e?.target?.id === undefined) return setSelChoice1(e);
if (e?.target?.id === undefined) return setSelChoice2(e);
switch (e.target.id) {
...
case "start":
setStart(e.target.value);
break;
case "end":
setEnd(e.target.value);
break;
default:
}
};
return (
<>
<form>
<div >
Choose choice1 and choice2
</div>
<div>
<label>
Choice1:
<CustomDropdown
options={choice1}
value={selChoice1}
setValue={setSelChoice1}
isMulti={true}
/>
</label>
<label>
Choice2:
<CustomDropdown
options={choice2}
value={selChoice2}
setValue={setSelChoice2}
isMulti={true}
/>
</label>
</div>
<div>
<label>
Start:
<div>
<input
type="date"
name="start"
value={start}
onChange={textChange}
id="start"
/>
</div>
</label>
<label>
End:
<div>
<input
type="date"
name="end"
value={end}
onChange={textChange}
id="end"
/>
</div>
</label>
<p className="formfield">
<label
for="summary"
>
Description :
<textarea
value={summary}
onChange={textChange}
name="summary"
id="summary"
cols="10"
rows="10"
/>
</label>
</p>
</div>
</form>
<button
onClick={() =>
next({
...,
start,
end
})
}
>
Next
</button>
</>
);
}
else
中,我写了<FlashMessage duration={3000}> <span className=text-red-400>ERROR </span></FlashMessage>
,但是如果我选择的结束日期早于开始日期,就什么也不会打印出来,你知道为什么吗? - Zokulko