diff --git a/package.json b/package.json index d28b300e..c5ad9b93 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,7 @@ "classnames": "2.x", "@rc-component/select": "~1.1.0", "@rc-component/tree": "~1.0.1", - "@rc-component/util": "^1.2.1" + "@rc-component/util": "^1.3.0" }, "devDependencies": { "@rc-component/father-plugin": "^2.0.2", diff --git a/src/TreeSelect.tsx b/src/TreeSelect.tsx index 5402608f..0de0c59a 100644 --- a/src/TreeSelect.tsx +++ b/src/TreeSelect.tsx @@ -4,7 +4,7 @@ import useId from '@rc-component/util/lib/hooks/useId'; import type { IconType } from '@rc-component/tree/lib/interface'; import type { ExpandAction } from '@rc-component/tree/lib/Tree'; import { conductCheck } from '@rc-component/tree/lib/utils/conductUtil'; -import useMergedState from '@rc-component/util/lib/hooks/useMergedState'; +import useControlledState from '@rc-component/util/lib/hooks/useControlledState'; import * as React from 'react'; import useCache from './hooks/useCache'; import useCheckedKeys from './hooks/useCheckedKeys'; @@ -224,7 +224,7 @@ const TreeSelect = React.forwardRef((props, ref) treeNodeFilterProp = 'value', } = searchConfig; - const [internalValue, setInternalValue] = useMergedState(defaultValue, { value }); + const [internalValue, setInternalValue] = useControlledState(defaultValue, value); // `multiple` && `!treeCheckable` should be show all const mergedShowCheckedStrategy = React.useMemo(() => { @@ -249,10 +249,8 @@ const TreeSelect = React.forwardRef((props, ref) ); // =========================== Search =========================== - const [mergedSearchValue, setSearchValue] = useMergedState('', { - value: searchValue, - postState: search => search || '', - }); + const [internalSearchValue, setSearchValue] = useControlledState('', searchValue); + const mergedSearchValue = internalSearchValue || ''; const onInternalSearch = searchText => { setSearchValue(searchText);