Skip to content

How to reload data after append new data or state? #20

@arimunandar

Description

@arimunandar

Hi @ishkawa ,

I need your help, i'm trying to insert new data or cell, but when i run collectionView.reloadData(), nothing happen,

final class AdvancedVenueDetailViewController: UIViewController {
    @IBOutlet private weak var collectionView: UICollectionView!
    
    private let dataSource = CollectionViewDataSource<AdvancedVenueDetailViewState.CellDeclaration> { cellDeclaration in
        switch cellDeclaration {
        case .outline(let venue):
            return VenueOutlineCell.makeBinder(value: venue)
        case .sectionHeader(let title):
            return SectionHeaderCell.makeBinder(value: title)
        case .review(let review):
            return ReviewCell.makeBinder(value: review)
        case .relatedVenue(let venue):
            return RelatedVenueCell.makeBinder(value: venue)
        }
    }
    
    private var state = AdvancedVenueDetailViewState()
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        let layout = collectionView.collectionViewLayout as! UICollectionViewFlowLayout
        layout.estimatedItemSize = UICollectionViewFlowLayout.automaticSize
        collectionView.dataSource = dataSource
        dataSource.cellDeclarations = state.cellDeclarations
        
        DispatchQueue.main.asyncAfter(deadline: .now() + 5) {
            self.state.reviews.append(Review(authorImage: #imageLiteral(resourceName: "Kaminarimon_at_night"), authorName: "Yosuke Ishikawa", body: "Lorem ipsum."))
            self.collectionView.reloadData()
        }
    }
}

please help me :)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions