Skip to content

Commit 173d4de

Browse files
fix: 删除重复声明
1 parent a29a6e4 commit 173d4de

File tree

7 files changed

+13
-17
lines changed

7 files changed

+13
-17
lines changed

examples/panel.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@ export default () => {
9999
setValue2(nextValue);
100100
}}
101101
disabled={disabled}
102+
defaultActiveKey={['bj', 'haidian']}
102103
/>
103104

104105
<Cascader.Panel options={addressOptions} disabled={disabled} direction="rtl" />

src/Cascader.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ export interface CascaderProps<
159159
value: GetValueType<OptionType, ValueField, Multiple>,
160160
selectOptions: OptionType[],
161161
) => void;
162-
defaultActiveValueCells?: React.Key[];
162+
defaultActiveKey?: React.Key[];
163163
}
164164

165165
export type SingleValueType = (string | number)[];
@@ -176,7 +176,7 @@ export type InternalCascaderProps = Omit<CascaderProps, 'onChange' | 'value' | '
176176
value: InternalValueType,
177177
selectOptions: BaseOptionType[] | BaseOptionType[][],
178178
) => void;
179-
defaultActiveValueCells?: React.Key[];
179+
defaultActiveKey?: React.Key[];
180180
};
181181

182182
export type CascaderRef = Omit<BaseSelectRef, 'scrollTo'>;

src/OptionList/List.tsx

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ export type RawOptionListProps = Pick<
2929
| 'direction'
3030
| 'open'
3131
| 'disabled'
32-
> & { defaultActiveValueCells?: React.Key[]; };
32+
> & { defaultActiveKey?: React.Key[]; };
3333

3434
const RawOptionList = React.forwardRef<RefOptionListProps, RawOptionListProps>((props, ref) => {
3535
const {
@@ -41,7 +41,7 @@ const RawOptionList = React.forwardRef<RefOptionListProps, RawOptionListProps>((
4141
direction,
4242
open,
4343
disabled,
44-
defaultActiveValueCells,
44+
defaultActiveKey,
4545
} = props;
4646

4747
const containerRef = React.useRef<HTMLDivElement>(null);
@@ -106,7 +106,7 @@ const RawOptionList = React.forwardRef<RefOptionListProps, RawOptionListProps>((
106106
const halfCheckedSet = React.useMemo(() => new Set(toPathKeys(halfValues)), [halfValues]);
107107

108108
// ====================== Accessibility =======================
109-
const [activeValueCells, setActiveValueCells] = useActive(multiple, open);
109+
const [activeValueCells, setActiveValueCells] = useActive(multiple, open, defaultActiveKey);
110110

111111
// =========================== Path ===========================
112112
const onPathOpen = (nextValueCells: React.Key[]) => {
@@ -116,12 +116,6 @@ const RawOptionList = React.forwardRef<RefOptionListProps, RawOptionListProps>((
116116
internalLoadData(nextValueCells);
117117
};
118118

119-
React.useEffect(() => {
120-
if (defaultActiveValueCells && defaultActiveValueCells?.length > 0) {
121-
setActiveValueCells(defaultActiveValueCells)
122-
}
123-
}, [defaultActiveValueCells]);
124-
125119
const isSelectable = (option: DefaultOptionType) => {
126120
if (disabled) {
127121
return false;

src/OptionList/useActive.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,15 @@ import CascaderContext from '../context';
77
const useActive = (
88
multiple?: boolean,
99
open?: boolean,
10+
defaultActiveKey?: React.Key[],
1011
): [React.Key[], (activeValueCells: React.Key[]) => void] => {
1112
const { values } = React.useContext(CascaderContext);
1213

1314
const firstValueCells = values[0];
1415

1516
// Record current dropdown active options
1617
// This also control the open status
17-
const [activeValueCells, setActiveValueCells] = React.useState<React.Key[]>([]);
18+
const [activeValueCells, setActiveValueCells] = React.useState<React.Key[]>(defaultActiveKey ?? []);
1819

1920
React.useEffect(
2021
() => {

src/Panel.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ export default function Panel<
7171
direction,
7272
notFoundContent = 'Not Found',
7373
disabled,
74-
defaultActiveValueCells
74+
defaultActiveKey,
7575
} = props as Pick<InternalCascaderProps, PickType>;
7676

7777
// ======================== Multiple ========================

tests/Panel.spec.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,14 +79,14 @@ describe('Cascader.Panel', () => {
7979
expect(onChange).toHaveBeenCalledWith([['bamboo', 'little']], expect.anything());
8080
});
8181

82-
it('multiple with defaultActiveValueCells', () => {
82+
it('multiple with defaultActiveKey', () => {
8383
const onChange = jest.fn();
8484
const { container } = render(
8585
<Cascader.Panel
8686
checkable
8787
options={options}
8888
onChange={onChange}
89-
defaultActiveValueCells={['bamboo', 'little']}
89+
defaultActiveKey={['bamboo', 'little']}
9090
/>,
9191
);
9292
expect(container.querySelectorAll('.rc-cascader-menu')).toHaveLength(2);

tests/selector.spec.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ import Cascader from '../src';
55
import { addressOptions } from './demoOptions';
66

77
// Mock `useActive` hook
8-
jest.mock('../src/OptionList/useActive', () => (multiple: boolean, open: boolean) => {
8+
jest.mock('../src/OptionList/useActive', () => (multiple: boolean, open: boolean, defaultActiveKey: React.Key[]) => {
99
// Pass to origin hooks
1010
const originHook = jest.requireActual('../src/OptionList/useActive').default;
11-
const [activeValueCells, setActiveValueCells] = originHook(multiple, open);
11+
const [activeValueCells, setActiveValueCells] = originHook(multiple, open, defaultActiveKey);
1212

1313
(global as any).activeValueCells = activeValueCells;
1414

0 commit comments

Comments
 (0)