diff --git a/.eslintrc.js b/.eslintrc.js index e67dacfe..ed4ad53d 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -8,7 +8,6 @@ module.exports = { 'default-case': 0, 'eslint-comments/disable-enable-pair': 0, 'jsx-a11y/interactive-supports-focus': 0, - 'import/no-extraneous-dependencies': ['error', { devDependencies: true }], '@typescript-eslint/no-object-literal-type-assertion': 0, }, }; diff --git a/examples/disable.tsx b/examples/disable.tsx index 920603b9..cb1a6903 100644 --- a/examples/disable.tsx +++ b/examples/disable.tsx @@ -1,4 +1,3 @@ -/* eslint-disable import/no-named-as-default-member */ import '../assets/index.less'; import React from 'react'; import TreeSelect from '../src'; @@ -76,11 +75,7 @@ class Demo extends React.Component { return (
- this.switch(e.target.checked)} - />{' '} - 禁用 + this.switch(e.target.checked)} /> 禁用
); } diff --git a/src/generate.tsx b/src/generate.tsx index 341dbfe9..64d06c6c 100644 --- a/src/generate.tsx +++ b/src/generate.tsx @@ -325,7 +325,14 @@ export default function generate(config: { ]; } return [newRawValues, valueHalfCheckedKeys]; - }, [value, mergedMultiple, mergedLabelInValue, treeCheckable, treeCheckStrictly]); + }, [ + value, + flattedOptions, + mergedMultiple, + mergedLabelInValue, + treeCheckable, + treeCheckStrictly, + ]); const selectValues = useSelectValues(rawValues, { treeConduction, diff --git a/tests/Select.checkable.spec.js b/tests/Select.checkable.spec.js index 3f3a301a..23e2a31b 100644 --- a/tests/Select.checkable.spec.js +++ b/tests/Select.checkable.spec.js @@ -712,4 +712,45 @@ describe('TreeSelect.checkable', () => { expect(wrapper.exists('.rc-tree-select-tree-treenode-checkbox-checked')).toBeTruthy(); }); + + // https://github.com/ant-design/ant-design/issues/32184 + it('should pass correct keys', () => { + const wrapper = mount( + , + ); + + expect(wrapper.find('Tree').prop('checkedKeys')).toEqual( + expect.objectContaining({ checked: ['parent'] }), + ); + + wrapper.setProps({ + treeData: [ + { + label: 'parent', + value: 'parent', + children: [ + { + label: 'child', + value: 'child', + }, + ], + }, + ], + }); + + expect(wrapper.find('Tree').prop('checkedKeys')).toEqual( + expect.objectContaining({ checked: ['parent', 'child'] }), + ); + }); }); diff --git a/tests/__mocks__/rc-motion/lib/CSSMotionList.js b/tests/__mocks__/rc-motion/lib/CSSMotionList.js index 47360d6d..036d6e78 100644 --- a/tests/__mocks__/rc-motion/lib/CSSMotionList.js +++ b/tests/__mocks__/rc-motion/lib/CSSMotionList.js @@ -1,5 +1,3 @@ -/* eslint-disable import/no-extraneous-dependencies */ - import React from 'react'; import { genCSSMotion } from 'rc-motion/lib/CSSMotion'; import CSSMotionList, { genCSSMotionList } from 'rc-motion/lib/CSSMotionList';