diff --git a/packages/core-api/src/apis/system/ApiProvider.tsx b/packages/core-api/src/apis/system/ApiProvider.tsx index a99b849104..807b2ff7e0 100644 --- a/packages/core-api/src/apis/system/ApiProvider.tsx +++ b/packages/core-api/src/apis/system/ApiProvider.tsx @@ -20,6 +20,7 @@ import React, { ReactNode, PropsWithChildren, Context, + useMemo, } from 'react'; import PropTypes from 'prop-types'; import { ApiRef, ApiHolder, TypesToApiRefs } from './types'; @@ -54,14 +55,15 @@ export const ApiProvider = ({ children, }: PropsWithChildren) => { const parentHolder = useContext(ApiContext)?.atVersion(1); - const holder = parentHolder ? new ApiAggregator(apis, parentHolder) : apis; - - return ( - + const versionedValue = useMemo( + () => + createVersionedValueMap({ + 1: parentHolder ? new ApiAggregator(apis, parentHolder) : apis, + }), + [parentHolder, apis], ); + + return ; }; ApiProvider.propTypes = { diff --git a/packages/core-api/src/app/AppContext.tsx b/packages/core-api/src/app/AppContext.tsx index cfe439fca5..c143aa86bc 100644 --- a/packages/core-api/src/app/AppContext.tsx +++ b/packages/core-api/src/app/AppContext.tsx @@ -19,6 +19,7 @@ import React, { PropsWithChildren, useContext, Context, + useMemo, } from 'react'; import { VersionedValue, @@ -43,7 +44,10 @@ export const AppContextProvider = ({ appContext, children, }: PropsWithChildren) => { - const versionedValue = createVersionedValueMap({ 1: appContext }); + const versionedValue = useMemo( + () => createVersionedValueMap({ 1: appContext }), + [appContext], + ); return ; };