আমি SwiftUI ব্যবহার করে একটি অ্যাপ নির্মাণের করছি এবং একটি উপায় একটি রূপান্তর করতে চাই Binding<Value?>
একটি থেকে Binding<Value
>।
আমার অ্যাপ্লিকেশনটিতে আমার একটি রয়েছে AvatarView
যা কোনও নির্দিষ্ট ব্যবহারকারীর জন্য কীভাবে কোনও চিত্র রেন্ডার করতে হয় তা জানে।
struct AvatarView: View {
@Binding var userData: UserData
...
}
আমার অ্যাপ্লিকেশনটিতে ContentView
দুটি বাইন্ডিংয়ের মালিকানা রয়েছে : আইডি দ্বারা ব্যবহারকারীদের একটি অভিধান এবং সেই ব্যবহারকারীর আইডি যার অবতারটি আমাদের দেখানো উচিত।
struct ContentView: View {
@State var userById: Dictionary<Int, UserData>
@State var activeUserId: Int
var body: some View {
AvatarView(userData: $userById[activeUserId])
}
}
সমস্যা: উপরের কোডটি একত্রিত হয় না কারণ $userById[activeUserId]
এটি টাইপযুক্ত Binding<UserData?>
এবং AvatarView
একটিতে লাগে Binding<UserData>
।
যে জিনিসগুলি আমি চেষ্টা করেছি ...
$userById[activeUserId]!
কাজ করে না কারণ এটি একটি মোড়কানোর চেষ্টা করছেBinding<UserData?>
। আপনি কেবল একটিই আনপ্রেপ করতে পারেনOptional
, একটি নয়Binding<Optional>
।$(userById[activeUserId]!)
যে কারণে আমি এখনও বুঝতে পারি না সেগুলির জন্য কাজ করে না, তবে আমি মনে করি$
যে সংকলনের সময় এমন কিছু সমাধান করা হয়েছে যাতে আপনি স্বেচ্ছাসেবীর মত প্রকাশের উপস্থাপন করতে পারেন না$
।
$userById[activeUserId] as! Binding<UserData>
?