diff --git a/packages/core/src/router.ts b/packages/core/src/router.ts index 72eec1632..48a4e1893 100644 --- a/packages/core/src/router.ts +++ b/packages/core/src/router.ts @@ -1,4 +1,5 @@ import { default as Axios, AxiosResponse } from 'axios' +import deepmerge from 'deepmerge' import debounce from './debounce' import { fireBeforeEvent, @@ -387,7 +388,9 @@ export class Router { const pageResponse: Page = response.data if (isPartial && pageResponse.component === this.page.component) { - pageResponse.props = { ...this.page.props, ...pageResponse.props } + pageResponse.props = deepmerge(this.page.props, pageResponse.props, { + arrayMerge: (_target: any[], source: any[]) => source, + }) } preserveScroll = this.resolvePreserveOption(preserveScroll, pageResponse) as boolean preserveState = this.resolvePreserveOption(preserveState, pageResponse)