- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在测试异步 redux 操作(使用 thunk)时遇到问题,该操作会引发错误,因为 browserHistory
未定义。
(为简洁起见修改了代码)
actions.js
import { browserHistory } from 'react-router'
import axios from 'axios'
export function foo() {
return dispatch => {
return axios.post('/foo')
.then(res => { dispatch(something); browserHistory.push('/') })
.catch(err => { dispatch(somethingError) }
}
}
测试/actions.js
import nock from 'nock'
import configureMockStore from 'redux-mock-store'
import thunk from 'redux-thunk'
const mockStore = configureMockStore([thunk])
describe('foo succeeds', () => {
nock('localhost:300')
.post('/foo')
.reply(200)
const store = mockStore()
return store.dispatch(actions.foo())
.then(expect(store.getActions()).to.equal(something))
})
这当然会导致 TypeError: Cannot read property 'push' of undefined
,提示未处理的 promise 拒绝。有什么方法可以模拟 browserHistory
或在测试中优雅地处理错误?
最佳答案
事实证明这是一个简单的修复。在您的测试文件中,您可以模拟 react-router:
import * as router from 'react-router'
router.browserHistory = { push: () => {} }
关于通过调用 browserHistory 测试异步 redux 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40996922/
我正在尝试测试使用 react-router 的 browserHistory 的 React 组件。为了确保能够访问 browserHistory,我使用了 createMemoryHistory
我已经用这个(react-router 2.0)在路由器上设置了 browserHistory: import { browserHistory } from 'react-router' funct
我正在使用reactjs构建一个应用程序,在某些时候我有一个SearchForm,然后我单击其中一个项目,在该 View 中我有一个后退按钮。 我想要的是用以前的数据填充搜索表单。我已经通过 java
因此,在这种情况下,我倾向于强制导航到某个地方: 资源页面有删除资源的按钮。我想仅在资源被删除后导航到其他地方,但如果删除失败,我不想导航。这需要能够说“进行删除调用,等待完成,检查发生了什么,相应地
我正在实现 React Router,以便在单击任何表行(每一行都是用户/客户)时从搜索结果表链接到单独的配置文件组件。尝试使用 Link 格式化表格是一场噩梦,所以我在每个表格行的 onClick
目前我的 URL 结构仍然以散列语法存储历史。 例如:http://localhost:3000/#/work?_k=otstr8 我试图让它使用来自 react-router 的 browserHi
我在测试异步 redux 操作(使用 thunk)时遇到问题,该操作会引发错误,因为 browserHistory 未定义。 (为简洁起见修改了代码) actions.js import { brow
使用 browserHistory 时从 React Router 4 以编程方式导航到 anchor : import { withRouter } from 'react-router-dom'
我对 React 比较陌生;如果这是一个非常幼稚的问题,我深表歉意。 browserHistory有哪些技术优势?使其优于 hashHistory ?例如,使用 History API 是否有重大的性
作为用户,我想通过直接访问深层网址来访问内容 情况 在主页上,我有一个指向“关于”页面的链接。单击内容更改按预期方式。 页面被加载并且 url 更改为 localhost:8080/about。 如果
我正在尝试导入 browserHistory,但出现类似这样的错误。 ./src/App.js Attempted import error: 'browserHistory' is not e
我正在尝试导入 browserHistory,但出现类似这样的错误。 ./src/App.js Attempted import error: 'browserHistory' is not e
所以我尝试在 React 中使用 history,但它似乎移动了很多。我发现了这个: https://github.com/ReactTraining/react-router/blob/ab4552
我是 React 的新手,刚开始学习路由的工作原理。 hashHistory (/#/paths/like/this) 效果很好,但是 browserHistory (/paths/like/this
尝试使用 browserHistory.push 方法以编程方式更改我的路线。 它会改变路线(根据浏览器地址栏)但不会更新 View 。 这是我的代码 应用程序.jsx const AppStart
每当我在本地使用 browserHistory 时,我都没有问题,但是当我在发布它之前对其进行测试时,我得到一个包含错误的空白页面。因此,当我用 hashHistory 替换 browserHisto
我有一个 react 应用程序在 dropwizard 服务器上运行。 bundle.js 在/ui 上提供。当我打开/ui 上的 url 并导航应用程序(和转到/ui/content)时,它工作正常
我怎样才能不监听该路由?我的函数“执行”一直在运行,我点击链接 const unlisten = browserHistory.listen(unlis); 函数handleUrl(位置) { con
可以使用 作为 在新标签页中打开链接。但是可以使用 browserHistory.push 吗?在新标签页中打开链接? 最佳答案 React-router 是建立在浏览器 History API 之
我正在用 Electron 创建我的第一个 React 应用程序(也是我的第一个 Electron 应用程序)。我有两条路线,需要从一条路线导航到另一条路线。为此,我使用以下代码: 根 ReactDO
我是一名优秀的程序员,十分优秀!