const {visible} = props;
const [dateRange, setDateRange] = useState([moment(), moment()]);
useEffect(() => {
const getData = async () => {
const res = await fetch({ start: dateRange[0].valueOf(), end: dateRange[1].valueOf()});
}
if(visible){
// 每次出现的时候都重置dateRange值
setInputValue([moment(),moment()])
// 每次出现的时候都请求接口
getData()
}
}, [visible, dateRange]);
const handleInputChange = (value) => {
setDateRange(value);
}
return (
<div style={{ display: 'flex' }}>
<DateRange value={dateRange} onChange={handleInputChange}></DateRange>
</div>
);
由于每次dateRange都是新数组,导致每次dateRange都是新的,useEffect会死循环,如何解决?
依赖项改成直接依赖
dateRange
的元素PS:
看代码逻辑
useEffect
本质只依赖变量visible
,代码可以调整为: