Normalizr非常擅长创建实体的结构化JSON存储库。我们有很多案例显示数据列表,例如posts已规范化。在列出posts的地方,API响应仅限于几个关键字段。尽管我们现在需要从API中获取包含所有字段的完整JSON实体,但我们也有显示这些posts之一的情况。如何最好地处理这个问题?一个一个单独的reducer、thunk/saga、选择器和Action?B只需将从API获取的post的扩展版本插入到reducer中。重用之前的选择器等? 最佳答案 将应用程序的状态视为数据库。我建议你使用这个状态形状:{entities:{/
我正在使用react-native和redux构建一个移动应用程序,我正在以这种方式按功能组织我的项目结构:组件1/---Component1Actions.js---Component1Reducer.js---...组件2/---Component2Actions.js---Component2Reducer.js---...在我看来,这种项目结构令人惊叹的原因有很多,首先是因为它具有很强的可扩展性。到目前为止我遇到的唯一问题是当2个不同的组件必须分派(dispatch)相同的操作时(例如文本框中的简单文本更改)。在2个不同的文件中重写完全相同的操作是没有意义的,而且我也知道将一个
我正在使用React+Redux和redux-form进行表单处理和验证。到目前为止,它非常易于使用,我可以使用field.touched和field.error轻松检查各个表单字段的验证状态,但我似乎找不到任何方法或属性来告诉我是否有任何整个表格的错误。React的工作方式是,任何表单在加载后都会产生一堆错误,这就是为什么您需要使用field.touched来测试各个字段。我想要做的是在表单中的任何地方有任何错误时显示一些通用标记,但只显示一次。所以真的,我希望有类似form.touched和form.error的东西。我有一个辅助函数的设计,它将检查表单中的所有字段并返回一个boo
我有一个更新全局计数器的Action和缩减器。此操作以快速间隔触发。reducer为每个操作返回一个新的状态副本。reducer看起来像:import{handleActions}from'redux-actions';import{sceneTick}from'./actions';exportdefault(state,action)=>handleActions({[sceneTick]:(state,action)=>{return{...state,loop:action.payload,}},我在各种React组件上使用react-redux的connect方法。并非所有组
我的初始状态如下所示,如果添加了新书或更改了价格,那么新的更新数组来自服务,我需要将其结果合并到我的初始状态。constinitialState={booksData:[{"Code":"BK01","price":"5"},{"code":"BK02","price":"30"},{"code":"BK03","price":"332"},{"code":"BK04","price":"123"}]};来自服务器的更新数组有少量记录更新/新data:[{"Code":"BK01","price":"10"},{"code":"BK02","price":"25"},{"code":"
我正在使用redux和react。这使得dispatch可以作为组件中的Prop使用。因此,当我console.log(this.props)时,我在调度键下的日志中看到以下对象。[[Scopes]]:Scopes[5]0:Closure1:Closure2:Closure(createThunkMiddleware)3:Closure4:Global谁能解释一下这是什么? 最佳答案 [[Scopes]]是Chrome开发者工具在内部添加和使用的私有(private)属性,在C++中,hereinthesource.它显示函数范围内
我来自Elm社区,在Elm中,每个应用程序都有其View、模型和状态,并且基本上采用与redux非常相似的方法来解决问题,IMO。无论如何,我发现自己正在为多个reducer的想法而苦苦挣扎。在Elm中,我习惯为所有操作(消息)创建一个单独的文件,为“react”(View)创建一个单独的文件,为状态(模型)创建一个单独的文件,为所有reducer(更新)创建一个单独的文件。每个可能的操作都包含在更新文件中,更新文件不能分布在多个文件中,将所有逻辑放在一个地方。另一方面,Redux鼓励为reducer创建多个单独的文件,然后将它们与combineReducers组合,我发现这非常令人困
我仍然是一个react/redux菜鸟。在一页上,我有大量的文本输入。一段时间后,我开始注意到我的操作文件具有做同样事情但输入不同的函数:exportfunctionsetInputName(string){return{type:'SET_CURRENT_NAME',payload:{value:string}};}exportfunctionsetInputCity(string){return{type:'SET_CURRENT_CITY',payload:{value:string}};}我的reducer看起来像:exportfunctioncurrentName(state
我如何从标准JS日期对象格式化日期,该对象来自服务器并通过RESTapi通过Redux馈送到React,其初始输出为:"2016-05-16T13:07:00.000Z"转换成不同的格式?所以它被列为DDMMYYYY?我可以通过操作请求结果或负载在Action的Reducer中执行此操作吗:import{FETCH_BOOKS,FETCH_BOOK}from'../actions';constINITIAL_STATE={books:[],book:null};exportdefaultfunction(state=INITIAL_STATE,action){switch(action
我只是想禁用redux-form中的一个字段,如下所示,但它似乎没有任何效果。这是redux-form版本7.4.2。还有请帮忙 最佳答案 你可以传递Prop对象:props:object[optional]:ObjectwithcustompropstopassthroughtheFieldcomponentintoacomponentprovidedtocomponentprop.ThispropswillbemergedtopropsprovidedbyFielditself.//outsideyourrender()meth