Skip to content

Commit 2de2a96

Browse files
committed
fix(core): fix bug of merge config.props
1 parent debaf5d commit 2de2a96

File tree

1 file changed

+9
-17
lines changed

1 file changed

+9
-17
lines changed

packages/runtime/core/src/config.ts

Lines changed: 9 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -48,25 +48,17 @@ export const filterNestedConfig = (
4848
return config;
4949
};
5050

51-
// Merge `oldConfig` and `newConfig`
51+
// `props` may be responsive data
5252
export const deepMergeConfig = <T>(o, n) => {
53-
let tempO = o;
54-
let tempN = n;
55-
const oHasProps = o && hasOwn(o, 'props');
56-
const nHasProps = n && hasOwn(n, 'props');
57-
58-
if (oHasProps) {
59-
tempO = Object.assign({}, o);
60-
delete tempO.props;
61-
}
62-
if (nHasProps) {
63-
tempN = Object.assign({}, n);
64-
delete tempN.props;
65-
}
66-
const result = deepMerge(tempO, tempN);
67-
if (oHasProps || nHasProps) {
68-
result.props = n.props || o.props;
53+
const props = n.props || o.props;
54+
if (props) {
55+
o = { ...o };
56+
n = { ...n };
57+
delete o.props;
58+
delete n.props;
6959
}
60+
const result = deepMerge(o, n);
61+
if (props) result.props = props;
7062
return result as T;
7163
};
7264

0 commit comments

Comments
 (0)