6
SwiftUI - วิธีการหลีกเลี่ยงการนำฮาร์ดโค้ดลงในมุมมอง
ฉันพยายามทำสถาปัตยกรรมสำหรับแอป SwiftUI ที่มีขนาดใหญ่ขึ้นและพร้อมใช้งาน ฉันใช้เวลาทั้งหมดในปัญหาเดียวกันซึ่งชี้ไปที่ข้อบกพร่องการออกแบบที่สำคัญใน SwiftUI ยังไม่มีใครสามารถให้คำตอบที่พร้อมสำหรับการทำงานอย่างเต็มที่กับฉันได้ วิธีการใช้ซ้ำ Views ในSwiftUIที่มีการนำทาง? เนื่องจากความSwiftUI NavigationLinkผูกพันกับมุมมองอย่างมากจึงไม่สามารถทำได้ในลักษณะที่ปรับขนาดในแอปที่ใหญ่กว่า NavigationLinkในแอปตัวอย่างขนาดเล็กเหล่านั้นทำงานได้ใช่ - แต่ไม่ใช่ทันทีที่คุณต้องการใช้ Views จำนวนมากในแอปเดียว และอาจนำมาใช้ซ้ำเกินขอบเขตของโมดูล (เช่น: ใช้การดูซ้ำใน iOS, WatchOS, ฯลฯ ... ) ปัญหาการออกแบบ: NavigationLinks ถูกฮาร์ดโค้ดลงในมุมมอง NavigationLink(destination: MyCustomView(item: item)) แต่ถ้ามุมมองที่มีสิ่งนี้NavigationLinkควรจะนำมาใช้ซ้ำฉันไม่สามารถ hardcodeปลายทางได้ จะต้องมีกลไกที่ให้ปลายทาง ฉันถามที่นี่และได้คำตอบที่ดี แต่ก็ยังไม่ได้คำตอบทั้งหมด: SwiftUI MVVM ผู้ประสานงาน / เราเตอร์ / NavigationLink แนวคิดคือการฉีดลิงค์ปลายทางลงในมุมมองที่นำมาใช้ซ้ำได้ โดยทั่วไปแล้วความคิดนี้ใช้งานได้ แต่น่าเสียดายที่นี่ไม่ได้ปรับใช้กับแอปการผลิตจริง ทันทีที่ฉันมีหน้าจอที่ใช้ซ้ำได้หลายหน้าจอฉันพบปัญหาตรรกะที่มุมมองที่นำมาใช้ซ้ำได้หนึ่งรายการ ( ViewA) ต้องมีมุมมองปลายทางที่กำหนดไว้ล่วงหน้า ( …