Questions tagged «redux»

Redux是基于Flux设计模式的JavaScript应用程序的可预测状态容器。

3
在非交互模式下运行CRA Jest
更新:我的用例主要是在CI上运行测试,但是我通常想知道重写默认的CRA Jest参数。 我正在使用Create React App附带的Jest配置运行测试。它总是启动为交互模式: › Press a to run all tests. › Press o to only run tests related to changed files. › Press p to filter by a filename regex pattern. › Press q to quit watch mode. › Press Enter to trigger a test run. 但是我不希望它等待我的输入。我希望它运行一次然后终止。我尝试使用--bailor--no-watchman开关,但它仍以交互模式启动。 如果我全局安装jest,并在项目的根目录中运行它,它将执行一次并完成(就如我所愿)。但是当我跑步时npm …

8
动作重做后反应路由器重定向
我正在使用react-redux和标准react-routing。确定动作后,我需要重定向。 例如:我已经注册了几个步骤。并采取以下措施: function registerStep1Success(object) { return { type: REGISTER_STEP1_SUCCESS, status: object.status }; } 我希望他重定向到带有registrationStep2的页面。怎么做? ps在历史记录浏览器中从未使用过“ / registrationStep2”。仅在成功注册结果步骤1页面之后,才会显示此页面。

3
redux中常数的意义是什么?
例如从此示例: export const ADD_TODO = 'ADD_TODO' export const DELETE_TODO = 'DELETE_TODO' export const EDIT_TODO = 'EDIT_TODO' export const COMPLETE_TODO = 'COMPLETE_TODO' export const COMPLETE_ALL = 'COMPLETE_ALL' export const CLEAR_COMPLETED = 'CLEAR_COMPLETED' 这不像您要保存字符。变量名称与字符串完全相同,并且永远不会更改。如果您有一天要做类似的事情,我会理解为常量: ADD_TODO = 'CREATE_TODO' 但这永远不会发生。那么这些常数有什么作用?
72 javascript  redux 

4
提取:如果状态不正常,则拒绝承诺并捕获错误?
这是我要去的事情: import 'whatwg-fetch'; function fetchVehicle(id) { return dispatch => { return dispatch({ type: 'FETCH_VEHICLE', payload: fetch(`http://swapi.co/api/vehicles/${id}/`) .then(status) .then(res => res.json()) .catch(error => { throw(error); }) }); }; } function status(res) { if (!res.ok) { return Promise.reject() } return res; } 编辑:诺言不会被拒绝,这就是我试图找出的。 我正在Redux和redux-promise-middleware中使用此访存polyfill。

10
“错误:减速器执行时,您不得调用store.getState()。”
我刚刚将功能齐全的本机应用程序升级到Redux v4,但是现在出现以下错误: 错误:错误:错误:错误:减速器执行时,您可能无法调用store.getState()。减速器已经收到状态作为参数。从顶部减速器向下传递,而不是从商店中读取。 我怀疑问题是我内部有许多组件,每个组件都有自己的组件connect(mapStateToProps, mapDispatchToProps)(Component),我认为这不是实现它的正确方法,尽管我不确定这样做的正确方法。 任何方向都将不胜感激! 堆栈跟踪: This error is located at: in Connect(SideBarApp) (at SceneView.js:9) in SceneView (at createTabNavigator.js:10) in RCTView (at View.js:43) in RCTView (at View.js:43) in ResourceSavingScene (at createBottomTabNavigator.js:86) in RCTView (at View.js:43) in RCTView (at View.js:43) in TabNavigationView (at createTabNavigator.js:127) in NavigationView (at createNavigator.js:59) in Navigator …

7
尽管向createStore()提供了初始状态,为什么我仍然得到“初始化期间返回未定义的Reducer […]”的信息?
我已经在redux createStore方法中设置了InitialState,并将对应的InitialState作为第二个参数 我在浏览器中遇到错误: <code>Uncaught Error: Reducer "postsBySubreddit" returned undefined during initialization. If the state passed to the reducer is undefined, you must explicitly return the initial state. The initial state may not be undefined.</code> 代码在这里: import { createStore, applyMiddleware } from 'redux' import thunkMiddleware from 'redux-thunk' import createLogger from 'redux-logger' …

3
Javascript-纯函数与不纯函数
我已经经历了两个类似的定义: 纯函数是不尝试更改其输入的函数,并且对于相同的输入始终返回相同的结果。 例 function sum(a, b) { return a + b; } 不纯函数是一种更改其自身输入的函数。 例 function withdraw(account, amount) { account.total -= amount; } 定义和代码片段摘自ReactJs 官方文档。 现在,有人可以告诉我,如何在React / Redux中犯一些错误,以在需要纯函数的地方使用不纯函数?

4
React-Redux中错误处理的正确方法
我想了解使用React-Redux进行错误处理的更通用或更正确的方法。 假设我有电话号码注册组件。 如果输入的电话号码无效,该组件将引发错误提示 处理该错误的最佳方法是什么? 想法1: 创建一个组件,该组件接受错误并在将错误传递给它时调度一个操作 想法2: 由于错误与该组件相关,请将错误传递给组件(该组件未连接到redux,即错误处理程序组件将不会分派操作) 问题:有人可以指导我在React-Redux中针对大型应用程序进行错误处理的正确方法吗?
11 reactjs  redux 

2
React-Redux-Hooks API
我正在尝试配置新的react-redux应用程序以使用React-Redux的新功能。在官方文件说: React Redux现在提供了一组钩子API,以替代现有的connect()高阶组件。 我一直在尝试找到一些与Hooks API相关的帮助文章,并提供一些实际示例,但是所有react-redux Apps都在使用connect函数。官方文档还显示了非常基本的示例。 我想使用useSelector(由Hooks API提供)更改应用程序中的连接功能。 这是我的应用程序中的示例代码片段。 //MessagesListContainer export default connect( // mapStateToProps (state:State) => ({ activeUser: getActiveUser(state), messages: getMessagesList(state), }) )(MessagesList) //Selectors export const getActiveUser = (state: State) => state.activeUser; export const getMessagesList = (state : State) => ( Object.keys(state.messages).map((key : any)=> state.messages[key]) ) export interface IMessagesListProps …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.