首页 > 解决方案 > 在功能容器中设置初始存储状态

问题描述

完整的示例应用是 Facebook 的官方 TodoMVC 应用:https ://github.com/facebook/flux/tree/master/examples/flux-todomvc

容器如下所示:

'use strict';

import AppView from '../views/AppView';
import {Container} from 'flux/utils';
import TodoActions from '../data/TodoActions';
import TodoDraftStore from '../data/TodoDraftStore';
import TodoEditStore from '../data/TodoEditStore';
import TodoStore from '../data/TodoStore';

function getStores() {
  return [
    TodoEditStore,
    TodoDraftStore,
    TodoStore,
  ];
}

function getState() {
  return {
    draft: TodoDraftStore.getState(),
    editing: TodoEditStore.getState(),
    todos: TodoStore.getState(),

    onAdd: TodoActions.addTodo,
    onDeleteCompletedTodos: TodoActions.deleteCompletedTodos,
    onDeleteTodo: TodoActions.deleteTodo,
    onEditTodo: TodoActions.editTodo,
    onStartEditingTodo: TodoActions.startEditingTodo,
    onStopEditingTodo: TodoActions.stopEditingTodo,
    onToggleAllTodos: TodoActions.toggleAllTodos,
    onToggleTodo: TodoActions.toggleTodo,
    onUpdateDraft: TodoActions.updateDraft,
  };
}

export default Container.createFunctional(AppView, getStores, getState, {withProps: true});

在示例中,商店开始时是空的,没有待办事项。但是,我希望使用来自服务器的初始待办事项预先填充商店。假设用户之前保留了他们的待办事项,现在又回到了页面。当用户再次打开应用程序时,他们会看到他们已经存在的待办事项。

您将如何设置商店的初始状态?是在某种初始化函数中请求数据还是由服务器通过道具传递?

我尝试过的事情

标签: reactjsfluxreactjs-flux

解决方案


推荐阅读