1- import React , {
2- useState ,
3- useEffect ,
4- forwardRef ,
5- useImperativeHandle ,
6- memo ,
7- } from 'react'
8- import type { ReactNode , CSSProperties } from 'react'
1+ import { useMemoizedFn } from 'ahooks'
92import classNames from 'classnames'
10- import Popup , { PopupProps } from '../popup '
11- import { mergeProps } from '../../utils/with-default-props '
3+ import type { CSSProperties , ReactNode } from 'react '
4+ import React , { forwardRef , memo , useEffect , useImperativeHandle } from 'react '
125import { NativeProps , withNativeProps } from '../../utils/native-props'
136import { usePropsValue } from '../../utils/use-props-value'
14- import {
15- PickerColumn ,
16- PickerColumnItem ,
17- PickerValue ,
18- PickerValueExtend ,
19- } from './index'
7+ import { mergeProps } from '../../utils/with-default-props'
8+ import { useConfig } from '../config-provider'
209import PickerView from '../picker-view'
2110import {
2211 generateColumnsExtend ,
2312 useColumnsExtend ,
2413} from '../picker-view/columns-extend'
25- import { useConfig } from '../config-provider'
26- import { useMemoizedFn } from 'ahooks'
14+ import Popup , { PopupProps } from '../popup'
2715import SafeArea from '../safe-area'
16+ import {
17+ PickerColumn ,
18+ PickerColumnItem ,
19+ PickerValue ,
20+ PickerValueExtend ,
21+ } from './index'
2822import { defaultRenderLabel } from './picker-utils'
2923
3024export type PickerActions = {
@@ -40,6 +34,7 @@ export type PickerProps = {
4034 columns : PickerColumn [ ] | ( ( value : PickerValue [ ] ) => PickerColumn [ ] )
4135 value ?: PickerValue [ ]
4236 defaultValue ?: PickerValue [ ]
37+ selectValue ?: PickerValue [ ]
4338 loading ?: boolean
4439 loadingContent ?: ReactNode
4540 onSelect ?: ( value : PickerValue [ ] , extend : PickerValueExtend ) => void
@@ -130,7 +125,11 @@ export const Picker = memo(
130125
131126 const extend = useColumnsExtend ( props . columns , value )
132127
133- const [ innerValue , setInnerValue ] = useState < PickerValue [ ] > ( value )
128+ const [ innerValue , setInnerValue ] = usePropsValue ( {
129+ value : props . selectValue ,
130+ defaultValue : value ,
131+ } )
132+
134133 useEffect ( ( ) => {
135134 if ( innerValue !== value ) {
136135 setInnerValue ( value )
0 commit comments