diff --git a/packages/cascader-panel/__tests__/cascader-panel.spec.ts b/packages/cascader-panel/__tests__/cascader-panel.spec.ts index db7746162b..2a61fc638b 100644 --- a/packages/cascader-panel/__tests__/cascader-panel.spec.ts +++ b/packages/cascader-panel/__tests__/cascader-panel.spec.ts @@ -686,40 +686,4 @@ describe('CascaderPanel.vue', () => { await wrapper.setProps({ options: NORMAL_OPTIONS }) expect(vm.getCheckedNodes(true).length).toBe(1) }) - - test('should not re-init when props\'s reference change but value not change', async () => { - const mockLazyLoad = jest.fn() - const wrapper = _mount({ - template: ` - - `, - data() { - return { - value: [], - props: { - lazy: true, - lazyLoad: mockLazyLoad, - }, - } - }, - }) - - await nextTick() - expect(mockLazyLoad).toBeCalled() - - const sameMockLazyLoad = jest.fn() - wrapper.vm.props.lazyLoad = sameMockLazyLoad - await nextTick() - expect(sameMockLazyLoad).not.toBeCalled() - - // should re-init when props's value change - const differentMockLazyLoad = jest.fn(lazyLoad) - wrapper.vm.props.lazyLoad = differentMockLazyLoad - await nextTick() - expect(differentMockLazyLoad).toBeCalled() - }) - }) diff --git a/packages/cascader-panel/src/index.vue b/packages/cascader-panel/src/index.vue index da8a837279..7087f1b370 100644 --- a/packages/cascader-panel/src/index.vue +++ b/packages/cascader-panel/src/index.vue @@ -36,7 +36,6 @@ import { coerceTruthyValueToArray, deduplicate, isEmpty, - isEqualWithFunction, } from '@element-plus/utils/util' import { CommonProps, useCascaderConfig } from './config' import { @@ -298,11 +297,7 @@ export default defineComponent({ watch( [ config, () => props.options ], - ([newConfig, newOptions], [oldConfig, oldOptions]) => { - if (isEqualWithFunction(newConfig, oldConfig) && isEqual(newOptions, oldOptions)) return - - initStore() - }, + initStore, { deep: true, immediate: true }, )