循环以在Redux中调度reducer

时间:2016-01-27 18:02:46

标签: reactjs redux

我有一个json文件,其中包含一系列Todos,我想将其渲染为调用我的reducer type: 'ADD_TODO'的初始状态。哪里最好循环到dispatch行动:

最好在Component中循环,添加每个Todo,如:

myInitialTodos.forEach(
  (todo, id) => store.dispatch({
    type: 'ADD_TODO',
    id
  })
)

或由reducer撰写的其他ADD_TODO,例如:

store.dispatch({
  type: 'ADD_TODOS',
  todos: myInitialTodos
})

在这两种情况下,都会在componentDidMount(例如)时启动。

也许(最有可能)还有另一种更好的方法。

谢谢,

1 个答案:

答案 0 :(得分:2)

最好添加单独的动作类型的ADD_TODOS并将一系列待办事项传递给你的reducer。如果您考虑最终在响应应用程序中添加后端,那么您不希望进行大量API调用来添加多个待办事项,而您只想发送一个网络请求。

编辑:此外,如果您总是希望将相同的待办事项列表添加到您的应用程序中,那么更好的方法是将它们置于您传递给reducer的初始状态,这样的事情就可以了诀窍:

const initialState = [{title: 'A sample todo', completed: false},{title: 'Another sample todo', completed: false}]

const todos = (state = initialState, action) => { //Reducer logic }