修复分享页面不能访问问题

This commit is contained in:
张成
2025-11-17 23:39:55 +08:00
parent ed9c0e9768
commit 4568e758a7
4 changed files with 199 additions and 59 deletions

View File

@@ -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>
</>