我想将状态树的某些部分保存到localStorage。什么是合适的地方这样做?reducer还是Action? 最佳答案 Reducer永远不是一个合适的地方,因为reducer应该是纯粹的并且没有副作用。我建议只在订阅者中进行:store.subscribe(()=>{//persistyourstate})在创建商店之前,请阅读那些持久化的部分:constpersistedState=//...conststore=createStore(reducer,persistedState)如果您使用combineReducers()
关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题吗?更新问题,以便editingthispost提供事实和引用来回答它.关闭3年前。ImprovethisquestionReact16.3.0wasreleased和ContextAPI不再是实验性功能。DanAbramov(Redux的创建者)写了一个很好的评论here关于这一点,但Context仍然是一个实验性功能已经2年了。我的问题是,根据您的意见/经验,我应该在什么时候使用ReactContext而不是ReactRedux,反之亦然? 最佳答案
我试图了解react-redux的connect方法,以及它作为参数的函数。特别是mapStateToProps().按照我的理解,mapStateToProps的返回值将是从状态派生的对象(因为它存在于存储中),其键将传递给您的目标组件(组件连接应用于)作为Prop。这意味着目标组件使用的状态可能与存储在商店中的状态具有截然不同的结构。问:这样可以吗?问:这是预期的吗?问:这是一种反模式吗? 最佳答案 是的,没错。它只是一个辅助函数,可以更简单地访问您的状态属性假设你的应用中有一个posts键state.postsstate.po
假设我有以下内容:exportconstSOME_ACTION='SOME_ACTION';exportfunctionsomeAction(){return{type:SOME_ACTION,}}在那个Action创建者中,我想访问全局存储状态(所有reducer)。这样做更好吗:importstorefrom'../store';exportconstSOME_ACTION='SOME_ACTION';exportfunctionsomeAction(){return{type:SOME_ACTION,items:store.getState().otherReducer.item
现在有很多关于redux镇最新小子的讨论,redux-saga/redux-saga.它使用生成器函数来监听/调度Action。在深入了解它之前,我想知道使用redux-saga的优缺点而不是下面我使用redux-thunk的方法使用异步/等待。一个组件可能看起来像这样,像往常一样调度操作。import{login}from'redux/auth';classLoginFormextendsComponent{onClick(e){e.preventDefault();const{user,pass}=this.refs;this.props.dispatch(login(user.v
根据文档,"Withoutmiddleware,Reduxstoreonlysupportssynchronousdataflow".我不明白为什么会这样。为什么容器组件不能调用异步API,然后dispatchAction?例如,想象一个简单的UI:一个字段和一个按钮。当用户按下按钮时,该字段将填充来自远程服务器的数据。import*asReactfrom'react';import*asReduxfrom'redux';import{Provider,connect}from'react-redux';constActionTypes={STARTED_UPDATING:'START
确定从1到N范围内的缺失值的常见面试问题已经完成了一千次。变体包括2个缺失值,最多K个缺失值。示例问题:范围[1,10](124578910)={3,6}以下是各种解决方案的示例:Easyinterviewquestiongotharder:givennumbers1..100,findthemissingnumber(s)我的问题是,将一个缺失值的简单情况视为O(n)复杂度,而较大情况的复杂度大致收敛于大于O(nlogn)的值:通过对范围进行排序(mergesort)并遍历它观察丢失的元素,难道不是更容易回答问题吗?此解决方案应花费不超过O(nlogn)并且能够解决1到N以外的范围的
确定从1到N范围内的缺失值的常见面试问题已经完成了一千次。变体包括2个缺失值,最多K个缺失值。示例问题:范围[1,10](124578910)={3,6}以下是各种解决方案的示例:Easyinterviewquestiongotharder:givennumbers1..100,findthemissingnumber(s)我的问题是,将一个缺失值的简单情况视为O(n)复杂度,而较大情况的复杂度大致收敛于大于O(nlogn)的值:通过对范围进行排序(mergesort)并遍历它观察丢失的元素,难道不是更容易回答问题吗?此解决方案应花费不超过O(nlogn)并且能够解决1到N以外的范围的
我要迁移到Redux。我的应用程序由很多部分(页面、组件)组成,所以我想创建许多reducer。Redux示例表明我应该使用combineReducers()来生成一个reducer。据我所知,Redux应用程序应该有一个商店,它是在应用程序启动后创建的。创建商店时,我应该通过我的组合reducer。如果应用程序不是太大,这是有道理的。但是如果我构建了多个JavaScript包怎么办?例如,应用程序的每个页面都有自己的bundle。我认为在这种情况下,一个组合reducer不好。我查看了Redux的源代码,发现了replaceReducer()函数。这似乎是我想要的。我可以为我的应用程
我要迁移到Redux。我的应用程序由很多部分(页面、组件)组成,所以我想创建许多reducer。Redux示例表明我应该使用combineReducers()来生成一个reducer。据我所知,Redux应用程序应该有一个商店,它是在应用程序启动后创建的。创建商店时,我应该通过我的组合reducer。如果应用程序不是太大,这是有道理的。但是如果我构建了多个JavaScript包怎么办?例如,应用程序的每个页面都有自己的bundle。我认为在这种情况下,一个组合reducer不好。我查看了Redux的源代码,发现了replaceReducer()函数。这似乎是我想要的。我可以为我的应用程