Как отправить асинхронное действие с параметрами (полезной нагрузкой) с помощью ReSwift - PullRequest
0 голосов
/ 31 мая 2018

Как отправить асинхронное действие с помощью ReSwift с параметрами?

Я создал это асинхронное действие:

func searchItems(state: AppState, store: Store<AppState>) -> Action? {
    var items = [Artwork]()
    HttpHelper.post(url: serverApi.search.rawValue, params: ["term": ""]) { data in
        if let data = data as? [[String: Any]] {
            for row in data {
                items.append(Artwork(data: row))
            }
            DispatchQueue.main.async {
                store.dispatch(UpdateItems(items: items))
            }
        }
    }
    return nil
}

Для отправки действия я использовал

store.dispatch(searchItems)

Пока я не знаю, как прикрепить условия поиска к действию.

1 Ответ

0 голосов
/ 16 июня 2018

Разобрался.Вот пример:

import ReSwift

struct GetShowroom: Action {

    let code: String

    init(code: String) {
        self.code = code
        getIt()
    }

    func getIt() {
        store.dispatch(UpdateLoading(loading: .Showroom(code: self.code)))
        HttpHelper.post(to: .getShowroom, params: ["code": self.code]) { res in
            if let data = res as? [String: Any] {
                store.dispatch(UpdateShowroom(showroom: Showroom(code: self.code, data: data)))
            }
        }
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...