ReSwift中间件加载初始状态

时间:2017-10-01 02:02:32

标签: swift redux swift4 reswift

如何使用ReSwift从数据库加载初始应用程序状态?

我在考虑应用程序状态首次被初始化时,即第一次调用reducer时,就像中间件一样思考。

2 个答案:

答案 0 :(得分:0)

我认为解决方案是中间件。

这意味着,您可以创建一个名称为Action的{​​{1}}。 也创建InitializeApp之类的Middleware

在您的DataBaseMiddleware内部,您可以创建条件来检查Middleware是否为action,并在加载完成后从InitializeApp获取数据,您可以DataBase操作来更新您的dispatch

在您的中间件中考虑,您可以调度UpdateUserInfo(name,age),UpdatePreferences ..

我希望我能帮上忙。

答案 1 :(得分:-1)

例如,在AppDelegate

var store = Store<AppState>(reducer: AppReducer(), state: nil)
AppReducer中的

func handleAction(action: Action, state: AppState?) -> AppState {
    return AppState(
        dbState: DBReducer(state: state?.dbState, action: action)
        //other states
    )
}

在DBReducer中

func DBReducer(state: DBState?, action: Action) -> dbState {
    var state = state ?? DBState()
    //actions state change
}

在init DBState中从db

获取数据