ReduxKitRxSwift 0.1.4

ReduxKitRxSwift 0.1.4

测试已测试
Lang语言 SwiftSwift
许可证 MIT
发布最后发布2015年12月
SPM支持 SPM

Karl Bowden 维护。



 
依赖
ReduxKit~> 0.1
RxSwift~> 2.0.0-beta
 

  • Aleksander Herforth Rendtslev 和 Karl Bowden

ReduxKitRxSwift

RxSwift 绑定 ReduxKit。

import ReduxKitRxSwift
let store = createStore(reducer)

使用/快速入门

import RxSwift
import Redux
import ReduxKitRxSwift

// Setup State, Actions and Reducers
struct State {
    let count: Int
}

struct IncrementAction: SimpleStandardAction {
    let meta: Any? = nil
    let error: Bool = false
    let rawPayload: Any? = nil
}

func reducer(previousState: State? = nil, action: Action) -> State {
    let state = previousState ?? State(count: 0)

    switch action {
    case let action as IncrementAction:
        return State(count: state.count + 1)
    default:
        return state
    }
}

// Create the Store
let store: Store<State> = ReduxKitRxSwift.createStore(reducer)

let disposable = store.subscribe { print("Count: \($0.count)") }
// -> Count: 0

store.dispatch(IncrementAction())
// -> Count: 1

disposable.dispose()

store.dispatch(IncrementAction())
// ->

安装

API

createStore

func createStore<State>(reducer: Reducer, state: State? = nil)
    -> Store<State>

使用 createStateStream 和一个 RxSwift.Variable 流来创建一个 ReduxKit.Store

createStateStream

public func createStream<State>(state: State)
    -> StateStream<State>

接受一个 State 并返回一个 ReduxKit.StateStream,使用 RxSwift.Variable 作为流提供者。

createDisposable

func createDisposable(disposable: RxSwift.Disposable)
    -> ReduxDisposable

接受一个 RxSwift.Disposable 并返回它包装为 ReduxDisposable 的结果。

返回的 disposable 只支持 disposable.dispose() 函数,并不返回已丢弃的状态(disposable.disposed 总是返回 false)。