微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在第一个索引处向集合中插入新元素时,如何使用 PageTabViewStyle 修饰符更新 TabView 中的 SwiftUI 的 ForEach

如何解决在第一个索引处向集合中插入新元素时,如何使用 PageTabViewStyle 修饰符更新 TabView 中的 SwiftUI 的 ForEach

在带有 add_filter( 'woocommerce_available_payment_gateways','o912_payment_gateway_disable_country' ); function o912_payment_gateway_disable_country( $available_gateways ) { if ( is_admin() ) return $available_gateways; $chosen_methods = WC()->session->get( 'chosen_shipping_methods' ); $chosen_shipping = $chosen_methods[0]; if ( WC()->customer->get_billing_state() != 'LMA' && WC()->customer->get_billing_state() != 'CAL' ) { unset( $available_gateways['bacs'] ); unset( $available_gateways['cod'] ); } else if ( $chosen_shipping == 'SD' || $chosen_shipping == 'ND' || $chosen_shipping == '99Min') { //99Min is new Custom Shipping unset( $available_gateways['bacs'] ); unset( $available_gateways['cod'] ); } return $available_gateways; } ForEach 中使用 TabView 时,这是一个非常具体的问题修饰符。

每次我在数组的开头插入一个元素时,我的应用都会崩溃。

我收到了

尝试从更新前仅包含 11 个项目的第 0 部分中删除项目 11

错误

在画布中它也会崩溃。

最后的常规附加工作正常,当我删除 PageTabViewStyle 修饰符时也能正常工作。

如果我需要详细说明或有任何问题,请告诉我。

更新:我似乎在 iOS 15 中已修复此问题并且我的代码有效。我仍然希望找到适用于 iOS 14 的解决方法

我用一个简单的单页应用重现了这个问题:

PageTabViewStyle

解决方法

这是针对 Xcode 12.5 / iOS 14.5 的测试解决方法。

TabView {
    ForEach(myArray,id: \.self) { value in
        Text("\(value)")
    }
}
.tabViewStyle(PageTabViewStyle(indexDisplayMode: .never))
.id(myArray.count)      // << here !!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。