NavigationLink로 생성 된 뷰에서 ObservedObject를 초기화하는 방법은 무엇입니까?

다니엘 앨런

나는 일반적으로 SwiftUI 및 iOS 프로그래밍을 완전히 처음 접했기 때문에 이것이 올바른 질문이 아니라면 사과드립니다. 질문은 내가하고 싶은 일을 나타내며 SwiftUI 컴파일러로 인해 빨간 청어라고 생각하는 오류가 발생합니다. 이 문제를 완전히 해결하는 데 잘못된 접근 방식을 취하고있을 가능성이 있습니다.

XCode 버전 11.2.1 (11B500)을 사용하고 있습니다.

ObservedObject를 사용하여보기 :

struct Results: View {
    var jobId: String
    @ObservedObject var jobDetailService: JobDetailService

    init(jobId: String) {
        self.jobId = jobId
        jobDetailService = JobDetailService(jobId: jobId)
    }

    var body: some View {
        //... view code here
    }

}

그리고이보기 내에서 "일반 매개 변수 'C0'을 추론 할 수 없습니다."라는 오류가 발생합니다 (ZStack 라인에서). NavigationLink블록을 주석 처리 하면 오류가 사라집니다. 또한 Results뷰가 jobId매개 변수에 의존하지 않을 (그리고 우리가를 사용하여 JobDetailService인라인으로 구성 @ObservedObject var jobDetailService = JobDetailService()하면이 모든 것이 작동합니다. 그러나 네트워크 호출을 통해 데이터를 가져오고 게시하려면 jobId매개 변수를 에 전달할 수 있어야합니다 JobDetailService.

struct JobList: View {
    @ObservedObject var jobListService = JobListService()

    var body: some View {
        NavigationView {
            List(jobListService.jobs) {job in
                ZStack {
                    JobCard(name: job.fullName, date: job.lastUpdated)
                    NavigationLink(destination: Results(jobId: job.jobId)) {
                        EmptyView()
                    }
                }
            }
        }
     }
 }

다니엘 앨런

이 기사를 읽고 초기화에만 의존하지 않는 Asperi의 조언에 대해 생각한 후 다음을 선택했습니다.

JobDetailServiceResults에서 사용자 지정 이니셜 라이저를 제거 하고 대신 서비스를 인스턴스화합니다 . 그런 다음에 .onAppear온 방법 Results보기 통화 getJobDetail에서 방법을 JobDetailService차례로 웁니다 네트워크 호출을 만드는을 @ObservedObject. 이를 통해 필요한 매개 변수를 전달하고 네트워크 호출이 이루어질 때 제어 할 수 있습니다. 이 문제에 대한 올바른 패턴이 아닐 수도 있지만 지금은 내 사용 사례에서 작동합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

생성자에서 초기화 된 배열에 데이터를 추가하는 방법은 무엇입니까?

분류에서Dev

조건에 따라 다른 생성자로 C ++ 참조를 초기화하는 방법은 무엇입니까?

분류에서Dev

Ecmascript 6에서 값이 생략 된 기본값으로 개체를 초기화하는 가장 좋은 방법은 무엇입니까?

분류에서Dev

루프에서 생성 된 뷰에서 UITapGestureRecognizer를 처리하는 방법은 무엇입니까?

분류에서Dev

생성자 전에 BufferedImage를 초기화하는 방법은 무엇입니까?

분류에서Dev

서명을하기 위해 jasperreport로 생성 된 pdf에서 위치를 찾는 방법은 무엇입니까?

분류에서Dev

목록으로 초기화 된 생성자를 만드는 방법은 무엇입니까?

분류에서Dev

포인터 속성이 모두 초기화 된 상태에서 QGraphicsItem을 생성 된 클래스로 다운 캐스트하는 방법은 무엇입니까?

분류에서Dev

CDK에서 생성 된 Lambda를 정기적으로 실행하는 방법은 무엇입니까?

분류에서Dev

Objective C의 매개 변수화 된 생성자에서 NSDate를 초기화하는 방법은 무엇입니까?

분류에서Dev

Android에서 동적으로 생성 된 뷰를 만들 때 이벤트 핸들러를 추가하는 방법은 무엇입니까?

분류에서Dev

외부 메서드 호출을 사용하여 생성자에서 초기화 된 개체를 모의하는 방법은 무엇입니까?

분류에서Dev

생성자 (JAVA) 내부에서 초기화 된 객체에 액세스하는 방법은 무엇입니까?

분류에서Dev

switch 문에서 무작위로 생성 된 숫자를 사용하는 방법은 무엇입니까?

분류에서Dev

동적으로 생성 된 입력에서 양식 데이터를 POST하는 방법은 무엇입니까?

분류에서Dev

동적으로 생성 된 뷰를 수직으로 정렬하는 방법은 무엇입니까?

분류에서Dev

TypeScript에서 추가 속성으로 배열 객체를 초기화하는 방법은 무엇입니까?

분류에서Dev

Rails 4에서 매개 변수로 활성 레코드를 초기화하는 방법은 무엇입니까?

분류에서Dev

생성 된 그래프를 PHP에서 원하는 폴더로 이동하는 방법은 무엇입니까?

분류에서Dev

iOS에서 새로 생성 된 비공개 API 헤더를로드하는 방법은 무엇입니까?

분류에서Dev

TextView Array에서 동적으로 생성 된 textview를 별도로 처리하는 방법은 무엇입니까?

분류에서Dev

Java에서 동적으로 생성 된 요소를 다시 호출하는 방법은 무엇입니까?

분류에서Dev

QWebView에서 동적으로 생성 된 이미지를 표시하는 방법은 무엇입니까?

분류에서Dev

window.location.href에서 동적으로 생성 된 ID를 사용하는 방법은 무엇입니까?

분류에서Dev

div 수준에서 동적으로 생성 된 필드를 제거하는 방법은 무엇입니까?

분류에서Dev

조건문에서 동적으로 생성 된 JavaScript 객체를 사용하는 방법은 무엇입니까?

분류에서Dev

생성자 내부에서 벡터 크기를 초기화하는 방법은 무엇입니까?

분류에서Dev

명시 적 오버로드 생성자에 대한 복사 초기화를 활성화하는 방법은 무엇입니까?

분류에서Dev

Meteor.loginWithFacebook () 메서드에서 새로 생성 된 _id를 얻는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    생성자에서 초기화 된 배열에 데이터를 추가하는 방법은 무엇입니까?

  2. 2

    조건에 따라 다른 생성자로 C ++ 참조를 초기화하는 방법은 무엇입니까?

  3. 3

    Ecmascript 6에서 값이 생략 된 기본값으로 개체를 초기화하는 가장 좋은 방법은 무엇입니까?

  4. 4

    루프에서 생성 된 뷰에서 UITapGestureRecognizer를 처리하는 방법은 무엇입니까?

  5. 5

    생성자 전에 BufferedImage를 초기화하는 방법은 무엇입니까?

  6. 6

    서명을하기 위해 jasperreport로 생성 된 pdf에서 위치를 찾는 방법은 무엇입니까?

  7. 7

    목록으로 초기화 된 생성자를 만드는 방법은 무엇입니까?

  8. 8

    포인터 속성이 모두 초기화 된 상태에서 QGraphicsItem을 생성 된 클래스로 다운 캐스트하는 방법은 무엇입니까?

  9. 9

    CDK에서 생성 된 Lambda를 정기적으로 실행하는 방법은 무엇입니까?

  10. 10

    Objective C의 매개 변수화 된 생성자에서 NSDate를 초기화하는 방법은 무엇입니까?

  11. 11

    Android에서 동적으로 생성 된 뷰를 만들 때 이벤트 핸들러를 추가하는 방법은 무엇입니까?

  12. 12

    외부 메서드 호출을 사용하여 생성자에서 초기화 된 개체를 모의하는 방법은 무엇입니까?

  13. 13

    생성자 (JAVA) 내부에서 초기화 된 객체에 액세스하는 방법은 무엇입니까?

  14. 14

    switch 문에서 무작위로 생성 된 숫자를 사용하는 방법은 무엇입니까?

  15. 15

    동적으로 생성 된 입력에서 양식 데이터를 POST하는 방법은 무엇입니까?

  16. 16

    동적으로 생성 된 뷰를 수직으로 정렬하는 방법은 무엇입니까?

  17. 17

    TypeScript에서 추가 속성으로 배열 객체를 초기화하는 방법은 무엇입니까?

  18. 18

    Rails 4에서 매개 변수로 활성 레코드를 초기화하는 방법은 무엇입니까?

  19. 19

    생성 된 그래프를 PHP에서 원하는 폴더로 이동하는 방법은 무엇입니까?

  20. 20

    iOS에서 새로 생성 된 비공개 API 헤더를로드하는 방법은 무엇입니까?

  21. 21

    TextView Array에서 동적으로 생성 된 textview를 별도로 처리하는 방법은 무엇입니까?

  22. 22

    Java에서 동적으로 생성 된 요소를 다시 호출하는 방법은 무엇입니까?

  23. 23

    QWebView에서 동적으로 생성 된 이미지를 표시하는 방법은 무엇입니까?

  24. 24

    window.location.href에서 동적으로 생성 된 ID를 사용하는 방법은 무엇입니까?

  25. 25

    div 수준에서 동적으로 생성 된 필드를 제거하는 방법은 무엇입니까?

  26. 26

    조건문에서 동적으로 생성 된 JavaScript 객체를 사용하는 방법은 무엇입니까?

  27. 27

    생성자 내부에서 벡터 크기를 초기화하는 방법은 무엇입니까?

  28. 28

    명시 적 오버로드 생성자에 대한 복사 초기화를 활성화하는 방법은 무엇입니까?

  29. 29

    Meteor.loginWithFacebook () 메서드에서 새로 생성 된 _id를 얻는 방법은 무엇입니까?

뜨겁다태그

보관