如何使用ReSwift从数据库加载初始应用程序状态?
我在考虑应用程序状态首次被初始化时,即第一次调用reducer时,就像中间件一样思考。
答案 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
获取数据