掘金:ReactorKit + RxDataSources 列表多次刷新的解决方案
To run the example project, clone the repo, and run pod install
from the Example directory first.
- iOS 9.0+
- Xcode 11+
- Swift 5+
SwiftyTraceableValue is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod 'SwiftyTraceableValue'
1、使用属性包装器 SwiftyTraceableValue
对需要比较属性进行修饰
// Reactor
struct State {
@SwiftyTraceableValue var sections : [LXFSection] = []
...
}
2、使用 mapDistinctUntilTraceableValueChanged
方法,并在对应属性前加上 $
// View
reactor.state.mapDistinctUntilTraceableValueChanged { $0.$sections }
.bind(to: tableView.rx.items(dataSource: dataSource))
.disposed(by: disposeBag)
SwiftyTraceableValue is available under the MIT license. See the LICENSE file for more info.
- LinXunFeng
- email: linxunfeng@yeah.net
- Blogs: 全栈行动 | LinXunFeng‘s Blog | 掘金