SWIFTUI - Swift 包 - @Environment 初始值设定项由于“内部”保护级别而无法访问

问题描述 投票:0回答:0

我正在制作一个 swift 包以将我的 SwiftUI 视图导入应用程序以帮助分离和重用组件。由于“内部”保护级别,我收到初始化程序无法访问的错误消息。

import SwiftUI

@available(iOS 13.0, *)
public struct DynamicText : View {

    @Environment(\.editMode) public var editMode
    
    @State public var placeholder : String
    
    @Binding public var text : String

    public var body: some View {
        if editMode?.wrappedValue.isEditing == true {
            // Do Something
            TextField(placeholder, text: $text)
        } else {
            // Do Something
            Text(placeholder)
        }
    }
}

我知道解决方法是创建一个像这样的成员初始化器,但是这样做你必须初始化所有对象,包括@Environment(.editMode) public var editMode。你如何使用所需的成员初始化器初始化这个对象?

    public init(placeholder: String, text: Binding<String>) {
        self.placeholder = placeholder
        self._text = text 
   }
swift swiftui initializer swiftui-environment
© www.soinside.com 2019 - 2024. All rights reserved.