diff --git a/frameworks/core/interfaces/native/implementation/nav_extender_accessor.cpp b/frameworks/core/interfaces/native/implementation/nav_extender_accessor.cpp index 206d3e51c515930906bd3de6ed6fcd2dac79df10..9c11a42bf7c437a0819e91b021d6d359ec422740 100644 --- a/frameworks/core/interfaces/native/implementation/nav_extender_accessor.cpp +++ b/frameworks/core/interfaces/native/implementation/nav_extender_accessor.cpp @@ -18,6 +18,7 @@ #include "core/components_ng/base/frame_node.h" #include "core/components_ng/pattern/navigation/navigation_group_node.h" #include "core/components_ng/pattern/navigation/navigation_pattern.h" +#include "core/components_ng/syntax/static/detached_free_root_proxy_node.h" #include "core/interfaces/native/implementation/nav_path_info_peer_impl.h" #include "core/interfaces/native/implementation/nav_path_stack_peer_impl.h" #include "core/interfaces/native/utility/converter.h" @@ -78,7 +79,13 @@ void SetNavDestinationNodeImpl(Ark_NavPathStack peer, auto stack = peer->GetNavPathStack(); CHECK_NULL_VOID(stack); int32_t curIndex = Converter::Convert(index); - stack->AddCustomNode(curIndex, Referenced::Claim(reinterpret_cast(node))); + auto container = Container::Current(); + CHECK_NULL_VOID(container); + auto instanceId = container->GetInstanceId(); + auto proxyNode = AceType::MakeRefPtr(instanceId); + CHECK_NULL_VOID(proxyNode); + proxyNode->AddChild(Referenced::Claim(reinterpret_cast(node))); + stack->AddCustomNode(curIndex, proxyNode); } void SetNavigationModeImpl(Ark_NativePointer navigation, Ark_NavigationMode mode)