小编Boo*_*rry的帖子

调用中参数“from”缺少参数 - SwiftUI

我正在构建一个 SwiftUI 应用程序,它可以从Movie Database API中按类型检索一系列电影。

用户选择电影后,我会创建第二个 API 来获取该特定电影的详细信息。我正在使用 @Published 通知视图更改,但是每当我调用模型的实例时,我都会收到错误“调用中的参数‘from’缺少参数”。

这是模型:

import Foundation

// MARK: - MovieList
struct MovieList: Codable {
    let page: Int
    let totalResults: Int
    let totalPages: Int
    let movie: [Movie]

    enum CodingKeys: String, CodingKey {
        case page
        case totalResults = "total_results"
        case totalPages = "total_pages"
        case movie = "results"
    }
}

// MARK: - Movie
struct Movie: Codable {
    let popularity: Double
    let voteCount: Int
    let video: Bool
    let posterPath: String?
    let id: Int
    let adult: …
Run Code Online (Sandbox Code Playgroud)

xcode json ios swift swiftui

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

.onReceive 触发两次 | 斯威夫特用户界面

我有一个包含选择器的 SwiftUI 视图。我在 Picker 的 .onReceive 中使用 Switch 语句来调用函数。该函数调用外部 API。

问题是每当视图初始化时,该函数就会被调用两次,即复制数据。我不明白为什么 .onReceive 被调用两次。

我认为这可能与我初始化选取器模型时调用的函数有关,然后从选取器本身收到另一个通知,但我不确定如何解决它。

这是我的代码:

拣货机型号

import Foundation

class PickerModel: ObservableObject {
    
    @Published var filter = 0
    
    let pickerOptions = ["Popular", "Top Rated"]
    
}
Run Code Online (Sandbox Code Playgroud)

包含选择器的视图:

import SwiftUI

struct FilteredMoviesGridView: View {
    
    @ObservedObject private var filteredMovieVM = FilteredMovieGridViewModel()
    @ObservedObject private var pickerModel = PickerModel()
    
    private var twoColumnGrid = [GridItem(.flexible()), GridItem(.flexible())]
    
    var body: some View {
        
        NavigationView {
            
            VStack {
                
                Picker(selection: $pickerModel.filter, label: Text("Select")) {
                    ForEach(0 ..< pickerModel.pickerOptions.count) {
                        Text(pickerModel.pickerOptions[$0])
                    }
                }.onReceive(pickerModel.$filter) …
Run Code Online (Sandbox Code Playgroud)

xcode ios swift swiftui

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

列表中的 NavigationLink 使用 isActive 推送错误的行

我正在尝试使用 NavigationLink 的 isActive 变量弹出回根视图控制器。

我遇到的问题是,单击列表项时使用 isActive 会推送错误的行。删除 isActive 变量,一切都会按预期工作。

在此输入图像描述

以下是一些用于演示目的的示例代码:

struct ContentView: View {
    
    @State private var activateNavigationLink: Bool = false

    var exampleData = ["a", "b", "c"]
    
    var body: some View {
        
        NavigationView {
            
            List(exampleData, id: \.self) { item in
                
                NavigationLink(
                    destination: SecondView(item: item), isActive: $activateNavigationLink) {
                    
                    Text(item)
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

第二视角

struct SecondView: View {
    
    var item: String
    
    var body: some View {
        Text(item)
    }
}
Run Code Online (Sandbox Code Playgroud)

这让我抓狂。任何帮助将不胜感激。

xcode swift swiftui

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

标签 统计

swift ×3

swiftui ×3

xcode ×3

ios ×2

json ×1