循环在 Redux 中调度减速器
Loop to dispatch a reducer in Redux
我有一个 json
文件,其中包含一组待办事项,我想将其呈现为调用我的减速器 type: 'ADD_TODO'
的初始状态。在哪里更好地循环到 dispatch
操作:
最好在组件中循环,添加每个单独的待办事项,例如:
myInitialTodos.forEach(
(todo, id) => store.dispatch({
type: 'ADD_TODO',
id
})
)
或另一个reducer
由ADD_TODO
组成,例如:
store.dispatch({
type: 'ADD_TODOS',
todos: myInitialTodos
})
在这两种情况下,在 componentDidMount
时启动(例如)。
也许(而且很可能)还有另一种更好的方法。
谢谢,
添加单独的 ADD_TODOS 操作类型并将待办事项数组传递给您的 reducer 绝对更好。如果您考虑最终向您的 React 应用程序添加后端,您不会希望进行一堆 API 调用来添加多个待办事项,您只想发送一个网络请求。
编辑:此外,如果您总是想将相同的待办事项列表添加到您的应用程序以启动,更好的方法是将它们置于您传递给减速器的初始状态,比如这可以解决问题:
const initialState = [{title: 'A sample todo', completed: false},{title: 'Another sample todo', completed: false}]
const todos = (state = initialState, action) => { //Reducer logic }
我有一个 json
文件,其中包含一组待办事项,我想将其呈现为调用我的减速器 type: 'ADD_TODO'
的初始状态。在哪里更好地循环到 dispatch
操作:
最好在组件中循环,添加每个单独的待办事项,例如:
myInitialTodos.forEach(
(todo, id) => store.dispatch({
type: 'ADD_TODO',
id
})
)
或另一个reducer
由ADD_TODO
组成,例如:
store.dispatch({
type: 'ADD_TODOS',
todos: myInitialTodos
})
在这两种情况下,在 componentDidMount
时启动(例如)。
也许(而且很可能)还有另一种更好的方法。
谢谢,
添加单独的 ADD_TODOS 操作类型并将待办事项数组传递给您的 reducer 绝对更好。如果您考虑最终向您的 React 应用程序添加后端,您不会希望进行一堆 API 调用来添加多个待办事项,您只想发送一个网络请求。
编辑:此外,如果您总是想将相同的待办事项列表添加到您的应用程序以启动,更好的方法是将它们置于您传递给减速器的初始状态,比如这可以解决问题:
const initialState = [{title: 'A sample todo', completed: false},{title: 'Another sample todo', completed: false}]
const todos = (state = initialState, action) => { //Reducer logic }