草庐IT

javascript - react 组件已连接,redux 状态发生变化......但组件没有更新?

我正在为多channel聊天应用创建一个React/Redux前端。在使用redux、react-redux和redux-thunk时,我在让一些React组件在状态更改后重新呈现时遇到问题。我相信我的reducer是不可变的,并且我是通过react-redux的connect订阅的。当我运行应用程序并查看浏览器控制台时,我看到了组件的初始呈现(即具有初始的空状态),然后是状态更改(由index.js中的Action调度触发)....然后我希望组件使用新Prop重新渲染,但它没有发生。我在这里放了一个repo协议(protocol):https://github.com/mattmos

javascript - 作为异步验证的结果,我如何显示 redux-form 警告?

Redux-forms支持validationerrorsandwarnings.错误会显示一条消息并阻止提交表单,而警告只会显示一条消息。Redux-forms也支持asyncvalidation.我错误地认为异步验证错误和警告会被支持,但事实并非如此。不幸的是warningsarenotofficiallypossiblewithasyncvalidation.目前需要相当大的努力才能摆脱使用redux-forms,所以我试图找到一个足够的解决方法。一种解决方案是手动向表单添加警告。如果这是可能的,那么异步验证可以大部分正常执行,但在最后设置警告,而不是提供预期的错误对象。但我查看

javascript - 使用 RxJS switchMap 仅取消订阅具有相同请求 URL/操作负载的流(redux-observable 史诗)

我有一个界面,用户可以在其中触发对同一端点但具有不同参数(在本例中为UUID)的调用。到目前为止,我一直很享受switchMap的行为,每当我发送一个具有相同类型的新redux操作时取消我的飞行中的http请求,在这种情况下我仍然想要这种行为,但是仅如果新操作请求的UUID(操作对象的一部分)与已经在进行中的UUID相同。我不太确定正确的方法。例如,在一次分派(dispatch)多个Action后,我希望所有具有唯一ID的Action都完成,但那些重复现有但尚未完成的ID会取消之前的请求并取而代之。例如:store.dispatch({type:"GET_SOME_DATA",uuid

javascript - 未定义 Redux 中间件

运行此代码时出现“中间件不是函数”错误。import'babel-core/polyfill';import{thunkMiddleware,Provider}from'redux-thunk';importcreateLoggerfrom'redux-logger';import{createStore,applyMiddleware}from'redux';import{fetchDistricts,fetchSchools}from'./actions.es6.js';importrootReducerfrom'./reducers.es6.js';//importAppfrom

javascript - Redux:组织容器、组件、 Action 和缩减器

问题:Whatisthemostmaintainableandrecommendedbestpracticefororganisingcontainers,components,actionsandreducersinalargeReact/Reduxapplication?我的看法:当前的趋势似乎是围绕相关的容器组件来组织redux抵押品(actions、reducers、sagas...)。例如/src/components/.../contianers/BookListactions.jsconstants.jsreducer.jsselectors.jssagas.jsinde

javascript - 通过 HOC 将 React 上下文传递给包装的组件

有没有一种方法可以通过React高阶组件将上下文传递给它包装的组件?我有一个HOC,它从其父级接收上下文并利用该上下文执行基本的通用操作,然后包装子组件,该子组件也需要访问相同的上下文以执行操作。示例:HOC:exportdefaultfunctionwithACoolThing(WrappedComponent){returnclassDoACoolThingextendsComponent{staticcontextTypes={actions:PropTypes.object,}@autobinddoAThing(){this.context.actions.doTheThing

javascript - React/Redux 服务器端渲染中的警告 : Did not expect server HTML to contain a <li> in <ul>.

我是第一次使用React和Redux进行服务器端渲染,似乎遇到了一些困难。我收到警告:Warning:DidnotexpectserverHTMLtocontainain.我查了一下,这意味着html树不匹配。我不确定那是怎么回事。有没有明显的方法来解决它?这是我的代码,它会发出警告。importReact,{Component}from'react';import{connect}from'react-redux';importactionsfrom'../actions';classUsersListextendsComponent{componentDidMount(){if(t

javascript - 如何选中/取消选中 react 中的复选框列表

我有一个room页面,在该页面中我有一个连接到该房间的传感器列表,可以使用复选框选择这些传感器,如下所示:{sensors.map(s=>{return({s.name});})}问题是-这种方法禁止我取消选中复选框(所以如果在数据库中,传感器连接到那个房间-就是这样)。我如何重写它以便我可以选中/取消选中此复选框? 最佳答案 在类里面你必须有状态,一个例子有点像这样exportdefaultclassyourComponentextendsReact.Component{state={checkedBoxes:[]}handleC

javascript - 使用 redux 时应该如何在 react 组件中处理取消订阅?

在我的组件中,我有以下内容:componentWillMount:function(){this.unsubscribe=store.subscribe(function(){this.setState({message:store.getState().authentication.message});}.bind(this));},componentWillUnmount:function(){this.unsubscribe();},不调用取消订阅会导致以下错误:Warning:setState(...):Canonlyupdateamountedormountingcompon

javascript - 我如何使用 immutable.js 之类的东西在 Redux 中组合多个 combineReducers 函数

我正在使用immutable.JS通过redux-immutablejs管理我的商店。我现在想使用redux-form库,但我在结合reducers时遇到了问题。Redux-immutable提供了一个combineReducers函数,该函数将检查传递给它的所有reducer是否返回不可变对象(immutable对象)。Redux本身提供了一个combineReducers函数,该函数不执行此类检查。Redux-form要求您包含它们的reducer,但我不能使用Reduximmutable的combineReducers这样做,因为它会失败。所以我要做的基本上是像这样组合这两个函数