@td-design/react-native-picker
Version:
基于 @td-design/react-native 的 picker 组件
40 lines • 1.03 kB
JavaScript
import { useImperativeHandle } from 'react';
import { useMemoizedFn, useSafeState } from '@td-design/rn-hooks';
export default function useNormalPicker(_ref) {
let {
value,
initialValue,
onChange,
ref
} = _ref;
const [selectedValue, selectValue] = useSafeState(value || initialValue);
const [visible, setVisible] = useSafeState(false);
useImperativeHandle(ref, () => ({
show: () => {
setVisible(true);
},
hide: () => {
setVisible(false);
}
}));
const handleChange = val => {
selectValue(val.value);
};
const handleClose = () => {
selectValue(value);
setVisible(false);
};
const handleOk = () => {
onChange === null || onChange === void 0 ? void 0 : onChange(selectedValue || initialValue);
setVisible(false);
};
return {
selectedValue,
visible,
ref,
handleChange: useMemoizedFn(handleChange),
handleOk: useMemoizedFn(handleOk),
handleClose: useMemoizedFn(handleClose)
};
}
//# sourceMappingURL=useNormalPicker.js.map