Silence-GitHub / BBSwiftUIKit

A SwiftUI library with powerful UIKit features.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

BBSwiftUIKit数据受影响

TangJingQiu opened this issue · comments

使用的此第三库里的BBTableView,每三个数据就会循坏,进入交互的数据也是每三个的变化
我的赋值方式,直接赋值,没使用model 是这个影响吗?

推测是直接给@State属性赋值,这样会出问题。@State属性应该设置为private,不能外部赋值。需要修改数据、更细页面,用EnvironmentObject

目前已知@State会有问题,最简单的 @State var n: Int,也会出问题。这与数据简单、复杂无关。

BBTableView内部用UITableView实现,Cell是复用的。如果只更新Cell而不更新Model,数据就会错乱。@State就属于只更新Cell,EnvironmentObject属于更新Model。

用EnvironmentObject。点赞之后,修改EnvironmentObject里的数据。

EnvironmentObject应该定义一个数组,数组里的元素就是帖子的数据(包括是否点赞、点赞数)。BBTableView用数组初始化。点赞的时候,只更新数组里一个元素的属性(Bool是否点赞,Int点赞数)。建议看一看SwiftUI官方教程 https://developer.apple.com/tutorials/swiftui/creating-and-combining-views

全都放。数组的一个元素就是一个帖子的数据