条件渲染
通过用户当前权限,条件渲染不同的 View 视图:
但这种方式的缺陷在于,对于不同的功能,需要自定义实现不同的“PremiumFeatureRow”组件。
并且,在 PremiumFeatureRow 组件中,需要实现点击打开订阅页面的逻辑。
通用修饰器
创建一个通用的 PremiumFeatureModifier 修饰器,
* 对于非会员用户,设置 .disabled(true),并显示会员徽章。
* 封装导航到订阅页面的逻辑。
在需要的地方,直接使用 .premiumFeature() 修饰器,无需格外的代码:
这种方式的缺陷是:
* 仅对支持.disabled(true)的组件有用,例如 Button。
* 对于 Picker 组件,理想情况下,对于非会员用户,我们仍然希望展示可选项,但不可点击。但这种方式会导致 Picker 整个不可点击。