Skip to content

Commit b9a9aa8

Browse files
authored
fix: DateTimePicker 设置 value 无效 (#59)
* feat: PasswordInput 新增清空输入框ref函数 * fix: DateTimePicker 设置 value 无效 * fix: useRefState hook 判断逻辑调整 * docs: update useRefState
1 parent 5db5053 commit b9a9aa8

File tree

3 files changed

+2202
-2166
lines changed

3 files changed

+2202
-2166
lines changed

packages/rc-ui-lib/src/datetime-picker/DatePicker.tsx

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import React, {
44
useImperativeHandle,
55
useMemo,
66
useRef,
7-
useState,
7+
memo,
88
useCallback,
99
} from 'react';
1010

@@ -35,7 +35,7 @@ const DatePicker = forwardRef<DateTimePickerInstance, DatePickerProps>((props, r
3535
date = props.minDate;
3636
}
3737

38-
date = Math.max(date, props.minDate.getTime());
38+
date = Math.max(new Date(date).getTime(), props.minDate.getTime());
3939
date = Math.min(date, props.maxDate.getTime());
4040

4141
return new Date(date);
@@ -44,6 +44,7 @@ const DatePicker = forwardRef<DateTimePickerInstance, DatePickerProps>((props, r
4444
const pickerRef = useRef<PickerInstance>(null);
4545
const [currentDate, setCurrentDate, currentDateRef] = useRefState(formatValue(value));
4646

47+
4748
const getBoundary = (type: 'max' | 'min', dateValue: Date) => {
4849
const boundary = props[`${type}Date`];
4950
const year = boundary.getFullYear();
@@ -245,15 +246,15 @@ const DatePicker = forwardRef<DateTimePickerInstance, DatePickerProps>((props, r
245246
props.onConfirm?.(currentDate);
246247
};
247248

248-
useMount(() => {
249-
setTimeout(() => {
250-
if (pickerRef.current) {
251-
const indexes = pickerRef.current?.getIndexes();
252-
const nextValue = updateInnerValue(indexes);
253-
setCurrentDate(nextValue);
254-
}
255-
}, 0);
256-
});
249+
// useMount(() => {
250+
// setTimeout(() => {
251+
// if (pickerRef.current) {
252+
// const indexes = pickerRef.current?.getIndexes();
253+
// const nextValue = updateInnerValue(indexes);
254+
// setCurrentDate(nextValue);
255+
// }
256+
// }, 0);
257+
// });
257258

258259
useEffect(() => {
259260
updateColumnValue();
@@ -296,4 +297,4 @@ DatePicker.defaultProps = {
296297

297298
DatePicker.displayName = 'DatePicker';
298299

299-
export default DatePicker;
300+
export default memo(DatePicker);

packages/rc-ui-lib/src/hooks/use-ref-state.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ export default function useRefState<T>(
1212
const setRefState = useCallback(
1313
(patch) => {
1414
setState((prevState) => {
15-
// eslint-disable-next-line no-return-assign
16-
return (ref.current = isFunction(patch) ? patch(prevState) : patch);
15+
// 仅判断 patch 是否是函数
16+
return isFunction(patch) ? patch(prevState) : patch;
1717
});
1818
},
1919
[state],

0 commit comments

Comments
 (0)