Skip to content

Commit

Permalink
fix(Picker): canClose 初始值应为 true
Browse files Browse the repository at this point in the history
  • Loading branch information
fjc0k committed Oct 4, 2019
1 parent 182acc2 commit 7fb20a9
Showing 1 changed file with 17 additions and 20 deletions.
37 changes: 17 additions & 20 deletions src/components/Picker/index.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import MPickerHeader from '../PickerHeader'
import MPickerView from '../PickerView'
import Taro, {useEffect, useRef, useState} from '@tarojs/taro'
import Taro, {useCallback, useEffect, useRef, useState} from '@tarojs/taro'
import XBottomSheet from '../BottomSheet'
import {functionalComponent} from '../component'
import {MPickerDefaultProps, MPickerProps} from './props'
Expand All @@ -9,48 +9,45 @@ import {View} from '@tarojs/components'
function MPicker(props: MPickerProps) {
const [visible, setVisible] = useState<boolean>(false)
const [selectedIndexes, setSelectedIndexes] = useState<number[]>([])
const canClose = useRef<boolean>(false)
const canClose = useRef<boolean>(true)

useEffect(
() => {
setSelectedIndexes(props.selectedIndexes)
},
[props.selectedIndexes],
)
useEffect(() => {
setSelectedIndexes(props.selectedIndexes)
}, [props.selectedIndexes])

function handleVisibleChange(visible: boolean) {
const handleVisibleChange = useCallback((visible: boolean) => {
setVisible(visible)
if (!visible) {
setSelectedIndexes(props.selectedIndexes)
}
}
}, [props.selectedIndexes])

function handlePickStart() {
const handlePickStart = useCallback(() => {
canClose.current = false
}
}, [])

function handlePickEnd() {
const handlePickEnd = useCallback(() => {
canClose.current = true
}
}, [])

function handlePickChange(selectedIndexes: number[]) {
const handlePickChange = useCallback((selectedIndexes: number[]) => {
setSelectedIndexes(selectedIndexes)
}
}, [])

function handleCancelClick() {
const handleCancelClick = useCallback(() => {
if (canClose.current) {
setSelectedIndexes(props.selectedIndexes)
setVisible(false)
props.onCancel()
}
}
}, [props.selectedIndexes, props.onCancel])

function handleConfirmClick() {
const handleConfirmClick = useCallback(() => {
if (canClose.current) {
setVisible(false)
props.onConfirm(selectedIndexes.slice())
}
}
}, [props.onConfirm, selectedIndexes])

return props.disabled ? props.children : (
<XBottomSheet
Expand Down

0 comments on commit 7fb20a9

Please sign in to comment.