修复分享页面不能访问问题
This commit is contained in:
@@ -51,7 +51,12 @@ const PopupPicker = ({
|
||||
}: PickerProps) => {
|
||||
const [defaultValue, setDefaultValue] = useState<(string | number)[]>([]);
|
||||
const [defaultOptions, setDefaultOptions] = useState<PickerOption[][]>([]);
|
||||
const [pickerCurrentValue, setPickerCurrentValue] = useState<(string | number)[]>(value);
|
||||
|
||||
const changePicker = (options: any[], values: any, columnIndex: number) => {
|
||||
// 更新 Picker 的当前值
|
||||
setPickerCurrentValue(values);
|
||||
|
||||
if (onChange) {
|
||||
console.log("picker onChange", columnIndex, values, options);
|
||||
if (
|
||||
@@ -77,8 +82,19 @@ const PopupPicker = ({
|
||||
}
|
||||
};
|
||||
|
||||
// 处理 Picker 的确认事件,获取当前选中的值
|
||||
const handlePickerConfirm = (options: PickerOption[], values: (string | number)[]) => {
|
||||
setPickerCurrentValue(values);
|
||||
setDefaultValue(values);
|
||||
};
|
||||
|
||||
const handleConfirm = () => {
|
||||
onChange(defaultValue);
|
||||
// 如果用户滚动过(defaultValue 不为空),使用 defaultValue
|
||||
// 如果用户没有滚动(defaultValue 为空),使用传入的默认值(即当前显示的默认选项)
|
||||
const valueToSave = defaultValue.length > 0 ? defaultValue : value;
|
||||
if (onChange && valueToSave.length > 0) {
|
||||
onChange(valueToSave);
|
||||
}
|
||||
setvisible(false);
|
||||
};
|
||||
|
||||
@@ -97,11 +113,19 @@ const PopupPicker = ({
|
||||
}
|
||||
}, [type]);
|
||||
|
||||
// useEffect(() => {
|
||||
// if (value.length > 0 && defaultOptions.length > 0) {
|
||||
// setDefaultValue([...value])
|
||||
// }
|
||||
// }, [value, defaultOptions])
|
||||
// 当选择器打开时,初始化 defaultValue 和 pickerCurrentValue
|
||||
useEffect(() => {
|
||||
if (visible) {
|
||||
if (value.length > 0) {
|
||||
setDefaultValue([...value]);
|
||||
setPickerCurrentValue([...value]);
|
||||
} else {
|
||||
// 如果 value 为空,重置为初始状态
|
||||
setDefaultValue([]);
|
||||
setPickerCurrentValue([]);
|
||||
}
|
||||
}
|
||||
}, [visible, value]);
|
||||
return (
|
||||
<>
|
||||
<CommonPopup
|
||||
@@ -147,6 +171,7 @@ const PopupPicker = ({
|
||||
options={defaultOptions}
|
||||
defaultValue={value}
|
||||
onChange={changePicker}
|
||||
onConfirm={handlePickerConfirm}
|
||||
/>
|
||||
</CommonPopup>
|
||||
</>
|
||||
|
||||
Reference in New Issue
Block a user