用于小动作的redux状态

时间:2017-10-19 07:42:31

标签: javascript reactjs redux

说我有一个待办事项列表,在创建待办事项后,我想将该项目保存到localstorage中。减速机怎么样?我应该在reducer中还是在视图中执行setItem方法?

case 'PUBLISH_TODO_PENDING':
            return { ...state, loading: true, todo_published: false, //do I do this? }
        case 'PUBLISH_TODO_FULFILLED':

          return { 
                ...state, 
                loading: false,
                todo_published: true, //do I do this?
                data: {
                    result: {
                         todo: state.data.todo,
                    }
                }
            }

如果我想在视图中使用setItem,我必须做一个标志,告诉todo wether的数据是否已发布。这很愚蠢我也必须将旗帜置于初始状态。

2 个答案:

答案 0 :(得分:4)

你应该使用redux-thunk。要在您的反应应用中使用它,请在商店中使用以下代码段。

const configureStore = (initialState) => (
    createStore(
    reducer,
    initialState,
    composeEnhancers(
        applyMiddleware(thunk)
    )
)

此外,更好的做法是编写涉及在单独文件夹中设置和获取本地存储的代码,比如说'utils'并在操作中的操作页面中导入相同内容。

答案 1 :(得分:0)

保存到localstorage是一个副作用,使用redux-saga很好处理,所以你听一个特定的动作,你做的事情就像事件监听器。