ReactiveSwift с MVVM и действием - PullRequest
       30

ReactiveSwift с MVVM и действием

0 голосов
/ 30 сентября 2018

код:

init(roomService: RoomService) {
    self.roomService = roomService

    let viewDidLoad = viewModelProperty.signal.skipNil()
    roomAction = Action<(), [Room], NetworkError>(execute: { _ in
        roomService.getRooms()
    })

    roomAction <~ viewDidLoad
    rooms = roomAction.values
    isLoading = roomAction.isExecuting.signal
    networkError = roomAction.errors

}

roomService.getRooms() возвращает SignalProducer<[Room], NetworkError>

Это инициация моей ViewModel, но я хочу улучшить свое решение и изменить создание CellViewModel внутри действия.Как это сделать, потому что я застрял.

Мне нужно что-то вроде этого: Action<(), [CellViewModel], NetworkError>, где action.values вернется Signal<[CellViewModel], NoError>

1 Ответ

0 голосов
/ 01 октября 2018

Я бы посоветовал сохранить действие как оно есть, а затем .map результат действия до [CellViewModel], чтобы две функции были разделены и составлены, например,

rooms = roomAction.values.map(CellViewModel.init)

...