พฤติกรรม

ปิดเมื่อเลือก

เมื่อ shouldCloseOnSelect ถูกเปิดใช้งาน ตัวเลือกวันที่ (picker) จะทำการยืนยันและปิดโดยอัตโนมัติเมื่อวันที่สิ้นสุดถูกเลือก

import { useState } from "react";
import "react-date-range-picker-styled/rdrp-styles.css";
import { DateRangePicker } from "react-date-range-picker-styled";
function ShouldCloseOnSelect() {
const [value, setValue] = useState<{ start: Date | null; end: Date | null }>({
start: null,
end: null,
});
return <DateRangePicker value={value} onChange={setValue} shouldCloseOnSelect />;
}

หลายเดือน

แสดงผลมากกว่าสองเดือนข้างกันซึ่งเป็นค่าเริ่มต้น

import { useState } from "react";
import "react-date-range-picker-styled/rdrp-styles.css";
import { DateRangePicker } from "react-date-range-picker-styled";
function MultiMonth() {
const [value, setValue] = useState<{ start: Date | null; end: Date | null }>({
start: null,
end: null,
});
return <DateRangePicker value={value} onChange={setValue} numberOfMonths={3} />;
}

การทำงานร่วมกับฟอร์ม

ใช้ name prop เพื่อรวม input ที่ซ่อนไว้สำหรับการส่งฟอร์มแบบดั้งเดิม

💡 Tip

สไตล์ของปุ่ม submit ในตัวอย่างนี้เป็นสไตล์ที่กำหนดเอง — ไลบรารีมีให้เพียงตัวเลือกวันที่เท่านั้น

import { type SubmitEvent, useState } from "react";
import "react-date-range-picker-styled/rdrp-styles.css";
import { DateRangePicker } from "react-date-range-picker-styled";
function FormIntegration() {
const [value, setValue] = useState<{ start: Date | null; end: Date | null }>({
start: null,
end: null,
});
const handleSubmit = (e: SubmitEvent<HTMLFormElement>) => {
e.preventDefault();
const formData = new FormData(e.currentTarget);
const start = formData.get("booking");
const end = formData.get("booking-end");
alert(
`Submitted range: ${typeof start === "string" ? start : ""} ~ ${typeof end === "string" ? end : ""}`,
);
};
return (
<form onSubmit={handleSubmit} style={{ display: "flex", alignItems: "center", gap: 8 }}>
<DateRangePicker value={value} onChange={setValue} name="booking" />
<button
type="submit"
style={{
padding: "6px 14px",
border: "1px solid #d1d5db",
borderRadius: 6,
background: "#3b82f6",
color: "#fff",
cursor: "pointer",
fontSize: 13,
}}
>
Submit
</button>
</form>
);
}