在过去的几周里,我一直在努力学习React和Redux。现在我遇到了一个问题,但我还没有找到正确的答案。假设我在React中有一个页面从链接中获取props。constid=this.props.params.id;现在在此页面上,我想显示一个来自STORE的具有此ID的对象。constinitialState=[{title:'Goal',author:'admin',id:0},{title:'Goalvol2',author:'admin',id:1}]我的问题是:从STORE查询对象的函数应该在页面文件中,在render方法之前,还是应该使用actioncreators并将该函
我想知道,有时我有一个reducer需要来自另一个reducer的信息。例如我有这个reducer:import*asActionTypesfrom'../actions/action_type_constants';importKeyCodefrom'keycode.js/index';import{store}from"../index";import{mod}from"../pure_functions";exportfunctionselectedCompletion(state=0,action){if(action.type===ActionTypes.arrowKeyPr
在阅读redux文档时我发现了这个:Still,youshoulddoyourbesttokeepthestateserializable.Don'tputanythinginsideitthatyoucan'teasilyturnintoJSON.所以我的问题是,保持状态可序列化有什么好处?或者,如果我将不可序列化的数据放入存储中,我可能会遇到什么困难?而且我相信这不是redux独有的-Flux,甚至React本地状态也暗示了同样的事情。为了让我清楚这里是一个例子。假设商店结构是这样的。{books:{1:{id:1,name:"Book1",author_id:4}},author
我在多个页面的表格中显示服务器驱动的数据。我目前有下表操作pageChangepageSizeChangesortloadloaded我在一些需要触发加载的页面上有过滤器。我有多个使用此功能的实体,它们将共享上述大部分逻辑,但需要单独的加载功能定义。我的想法是采取将表ID作为参数的操作,然后具有一个createTableReducer函数,该函数也将采用此ID并将表节点挂载到实体中,类似于react-redux-form中的createModelReducer|如果不使用像reduxsaga这样的东西,我怎么能从我的通用操作中触发实体特定的加载操作?我想知道如何创建一个高阶组件并将其传
Atthebeginning,thatsampleappwasworkingproperly.IcouldseedatathatIinputtedoverbrowserpageanddatabase.Atnow,Icanseethedataonlyviathedatabase,thebrowserdoesn'tshowdataandgettingthiserroradditionally:"Invalidattempttospreadnon-iterableinstance".有示例代码:projectActions.jsimport{FETCH_BOOK,CREATE_BOOK,DE
想象一下处理表单提交的情况,它可以返回不同的错误:400、401、500。返回400时,我想在表单顶部显示一条消息(覆盖默认行为)。对于其他(未处理的)错误代码,应调用默认(全局)错误处理程序(显示通知toast)。只是不想为每个Action都复制此代码我使用redux-thunk中间件分派(dispatch)异步操作//Pseudocodeconstaction=(dispatch)=>{constonSuccess=(result)=>dispatch({type:'OPERATION_SUCCESS',payload:result});constonError=(error)=>
由于我正在处理的应用程序的复杂性,我决定使用嵌套的redux容器,而不是将操作作为prop向下传递给子组件。然而,这已被证明在渲染OuterContainer时对单元测试有问题。与jsdom结合mocha,chai和sinon.这是View结构的人为示例:哪里OuterContainer&InnerContainer用连接包裹。例如:exportconnect()()运行测试时,我得到的错误是:InvariantViolation:Couldnotfind"store"ineitherthecontextorpropsof"Connect(Component)".Eitherwrapt
我一直在尝试学习如何更好地构建我的Redux存储,并偶然发现了Dan的这一课。https://egghead.io/lessons/javascript-redux-normalizing-the-state-shape#/guidelinesModal虽然我了解如何以这种方式规范化我的数据,但我不了解其背后的动机。特别是,我有两个问题。为什么简单的数组不够用?Dan提到-“在复杂的应用程序中,我们可能有多个数组,不同数组中具有相同ID的待办事项可能会不同步”。这个我没看懂,可以举个例子吗?我从使用对象中看到的唯一好处是提高了效率,因为我们不需要映射整个数组,以防我想将某个待办事项委托
我有一个表-我们称它为表1。当单击表1中的一行时,会显示另一个表,我们称它为表2。表2显示与表1中单击的行相关的数据。有时table2中需要显示垂直滚动,有时不需要-取决于行数。需要解决:在不显示滚动时边框有一个不需要的过渡:.解决思路:根据显示滚动是否退出的条件“更改margin-right”。将此条件的结果保存到Reduxprop中:元素.scrollHeight>元素.clientHeight||元素.scrollWidth>元素.clientWidth问题:尝试从不同的React事件(例如componentDidMount、componentWillReceiveProps、C
有没有办法取消或忽略一个Action?或者更确切地说,忽略操作的最佳/推荐方法是什么?我有以下Action创建器,当我向Action创建器输入无效大小(例如'some_string')时,除了收到我自己的警告消息外,我还收到:UncaughtError:操作必须是普通对象。使用自定义中间件进行异步操作。import{SET_SELECTED_PHOTOS_SIZE}from'./_reducers';exportdefault(size=0)=>{if(!isNaN(parseFloat(size))){return{type:SET_SELECTED_PHOTOS_SIZE,size