【问题标题】:ReactiveSwift with MVVM and Action带有 MVVM 和 Action 的 ReactiveSwift
【发布时间】:2019-03-05 20:44:50
【问题描述】:

代码:

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&lt;[Room], NetworkError&gt;

这是我的 ViewModel 的初始化,但我想改进我的解决方案并更改创建 CellViewModel 内部操作。怎么做,因为我被卡住了。

我需要这样的东西: Action&lt;(), [CellViewModel], NetworkError&gt; 其中action.values 将返回Signal&lt;[CellViewModel], NoError&gt;

【问题讨论】:

    标签: swift mvvm reactive-programming reactive-cocoa


    【解决方案1】:

    我的建议是保持操作原样,然后将操作结果.map 发送到[CellViewModel],以保持这两个功能分开且可组合,例如

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-19
      • 2020-07-13
      • 2011-09-25
      • 1970-01-01
      • 2010-12-24
      • 1970-01-01
      • 1970-01-01
      • 2022-11-07
      相关资源
      最近更新 更多