如何在SwiftUI的#Preview中模拟接收Error参数的视图?
解决SwiftUI预览中Error实例化的问题
方法一:自定义Mock错误类型(推荐)
先定义一个遵循Error协议的枚举,用于模拟不同错误场景:
enum MockError: Error { case sampleError case networkFailure case invalidInput }
然后修改预览代码,使用这个自定义错误实例:
#Preview { let errorWrapper = ErrorWrapper( error: MockError.sampleError, guidance: "请检查输入后重试", errorStyle: ErrorStyle.ok ) ErrorViewOk(errorWrapper: errorWrapper) }
方法二:直接使用NSError快速创建
如果不想自定义错误类型,可以直接用NSError初始化实例(它默认遵循Error协议):
#Preview { let mockError = NSError( domain: "com.yourapp.mockerror", code: 1001, userInfo: [NSLocalizedDescriptionKey: "模拟的错误描述"] ) let errorWrapper = ErrorWrapper( error: mockError, guidance: "请检查网络连接", errorStyle: ErrorStyle.ok ) ErrorViewOk(errorWrapper: errorWrapper) }
注意事项
- 预览闭包内不能使用
static var,直接创建局部变量即可 - 若需展示不同错误场景,只需切换MockError的case或调整NSError的参数
内容的提问来源于stack exchange,提问作者MatFetsch
相关产品推荐
相关产品推荐

