reactjs - 在功能容器中设置初始存储状态
问题描述
完整的示例应用是 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});
在示例中,商店开始时是空的,没有待办事项。但是,我希望使用来自服务器的初始待办事项预先填充商店。假设用户之前保留了他们的待办事项,现在又回到了页面。当用户再次打开应用程序时,他们会看到他们已经存在的待办事项。
您将如何设置商店的初始状态?是在某种初始化函数中请求数据还是由服务器通过道具传递?
我尝试过的事情
- 在 Store 的
getInititalState
函数中设置但无法访问 props - 直接在 Container
getState
函数的 Store 中设置,但是没有为视图更新 store - 在容器的函数中调度一个事件,
getState
但它不能设置任何东西,因为还没有渲染任何东西
解决方案
推荐阅读
- linux - OpenMPI / 高性能 Linpack 新手问题
- python - Django“Python manage.py runserver”命令报错然后冻结命令行
- php - Symfony 5.0.8 - 如何检查实体是否与树枝中的关系记录?
- asp.net-core - Blazor 3.2 组件在子级上引发空引用异常
- python - PyTorch“在 DataLoader 工作进程 0 中捕获 IndexError”、“IndexError:数组索引过多”
- node.js - Node.js/Discord.js/Mongodb 需要帮助使用关键字提取信息
- elasticsearch - 无法使用 logstash (7.6.2) 和 xml 过滤器插件设置解析和设置时间戳
- sum - Splunk 的计数总和
- oracle - 忽略 Oracle 文本索引中的阿拉伯语变音符号
- javascript - 将 SVG 动画设置为背景图像 - ReactJS