小编Sam*_*ies的帖子

当将新值推送到 NavigationStack 时,SwiftUI 的 navigationDestination 已在堆栈的早期声明

我正在尝试在 SwiftUI 中重新创建许多社交媒体应用程序中看到的帐户关注者流程。

\n
    \n
  1. 您按下个人资料上的按钮即可查看您的关注者列表
  2. \n
  3. 您可以点击您的任何一位关注者来查看他们的帐户
  4. \n
  5. 您可以按他们个人资料上的按钮来查看他们的关注者列表
  6. \n
  7. 您可以点击他们的任何一位关注者来查看他们的帐户
  8. \n
\n

步骤 3 和 4 可以永远继续下去(下面是另一个例子):

\n
MyProfile -> Followers (my followers list) -> FollowerView -> Followers (their followers list) -> FollowerView -> Followers (their followers list) -> FollowerView and so on...\n
Run Code Online (Sandbox Code Playgroud)\n

然而,通过运行下面的实现,XCode 控制台会打印:

\n
\n

\xe2\x80\x9cmyApp.SomeProfile\xe2\x80\x9d 的 navigationDestination 已在堆栈的较早位置声明。仅使用最接近堆栈根视图声明的目标。

\n
\n

我知道为什么会这样,但不确定如何解决这个问题。我也认为用作值的类型是否NavigationLink合适,因为它是Int。将其替换为更自定义的类型会更好吗?

\n

任何帮助将不胜感激。

\n
// Enum with custom options\nenum ViewOptions: Hashable {\n    case followers(Int)\n    \n    @ViewBuilder func view(_ path: Binding<NavigationPath>, …
Run Code Online (Sandbox Code Playgroud)

ios swift swiftui swiftui-navigationlink swiftui-navigationstack

4
推荐指数
1
解决办法
2835
查看次数