- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 Jest 和 enzyme 测试 react 组件。但是每当我尝试安装组件时,都会出现以下错误。
Error: Uncaught [SecurityError: replaceState cannot update history to a URL which differs in components other than in path, query, or fragment.]
at reportException (node_modules/jsdom/lib/jsdom/living/helpers/runtime-script-errors.js:66:24)
at invokeEventListeners (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:209:9)
at HTMLUnknownElementImpl._dispatch (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:119:9)
at HTMLUnknownElementImpl.dispatchEvent (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:82:17)
at HTMLUnknownElementImpl.dispatchEvent (node_modules/jsdom/lib/jsdom/living/nodes/HTMLElement-impl.js:30:27)
at HTMLUnknownElement.dispatchEvent (node_modules/jsdom/lib/jsdom/living/generated/EventTarget.js:157:21)
at Object.invokeGuardedCallbackDev (node_modules/react-dom/cjs/react-dom.development.js:199:16)
at invokeGuardedCallback (node_modules/react-dom/cjs/react-dom.development.js:256:31)
at commitRoot (node_modules/react-dom/cjs/react-dom.development.js:17458:7)
at completeRoot (node_modules/react-dom/cjs/react-dom.development.js:18912:3) SecurityError: replaceState cannot update history to a URL which differs in components other than in path, query, or fragment.
at HistoryImpl._sharedPushAndReplaceState (node_modules/jsdom/lib/jsdom/living/window/History-impl.js:83:15)
at HistoryImpl.replaceState (node_modules/jsdom/lib/jsdom/living/window/History-impl.js:57:10)
at History.replaceState (node_modules/jsdom/lib/jsdom/living/generated/History.js:129:21)
at node_modules/history/createBrowserHistory.js:211:23
at Object.confirmTransitionTo (node_modules/history/createTransitionManager.js:44:7)
at Object.replace (node_modules/history/createBrowserHistory.js:202:23)
at Redirect.perform (node_modules/react-router/Redirect.js:102:15)
at Redirect.componentDidMount (node_modules/react-router/Redirect.js:61:32)
at commitLifeCycles (node_modules/react-dom/cjs/react-dom.development.js:15961:22)
at commitAllLifeCycles (node_modules/react-dom/cjs/react-dom.development.js:17262:7)
console.error node_modules/react-dom/cjs/react-dom.development.js:15749
The above error occurred in the <Redirect> component:
in Redirect (created by ProfileContainer)
in ProfileContainer
in Router (created by BrowserRouter)
in BrowserRouter (created by WrapperComponent)
in WrapperComponent
export class ProfileContainer extends Component {
render() {
if (this.props.loginInfo.loginStatus !== "LOGIN_SUCCESS") {
return <Redirect to={"/" + getOrgName() + "/home"} />;
}
const userData = this.props.userData.results[0];
return <Profile userData={userData} loginInfo={this.props.loginInfo} />;
}
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
describe("<ProfileContainer />", () => {
it("renders without crashing", () => {
const wrapper = mount(
<BrowserRouter>
<ProfileContainer {...mockProps} />
</BrowserRouter>
);
});
});
jest: 23.6.0
enzyme: 3.7.0
enzyme-adapter-react-16: 1.7.0
最佳答案
好吧,该错误是描述性的,您正在尝试将 history.replaceState 与具有与当前 url 不同的来源或主机的 url 一起使用。
这发生在这里
<Redirect to={"/" + getOrgName() + "/home"} />
您可能需要更改
testURL开 Jest ,以便它匹配
getOrgName()
的来源和宿主因为 jest 中的默认 url 是
http://localhost
这里有更多
details关于如何配置 jest 和覆盖 testURL。
关于reactjs - SecurityError : replaceState cannot update history to a URL which differs in components other than in path, 查询或片段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53408895/
我在绑定(bind)到 window.hashchange 时遇到问题。调用 history.replaceState 时,除非调用 location.hash,否则它会触发 'hashchange'
我有这个网址: website.com/con?blog=true 我在 javascript 中做的是: if (getURLparams(blog)) { RandomFunction();
我们的单页应用程序使用自定义路由器。我们使用history.replaceState(...)将无效的url替换为有效的url。 网址看起来像... http://domain.com/#view=e
我目前正在使用 Node-RED 开发一个应用程序。我想更改 URL 而不重定向到另一个域。我对基本 JavaScript 有一些经验,并且我知道在 JS 中可以使用 history.replaceS
我一直在阅读和寻找 replaceState() 和 pushState() 之间的优缺点。另请阅读 Mozilla 的 article ,还有这个 interesting进行测试,但我仍然不清楚其中
任何人都可以为 history.replaceState 提供一个工作示例吗?这就是w3.org说: history.replaceState(data, title [, url ] ) Updat
我正在使用 bootstrap 的 scrollspy 更改页面滚动时突出显示的导航栏项目,然后使用 history.replaceState 将哈希添加到 url。 This question给了我
我创建了一个产品列表页面并使用这段 JS 来保持 url 反射(reflect)用户正在查看的项目(因此后退按钮应该返回到页面上的那个点) setInterval(function() { i
有没有什么技术可以用来更新历史状态对象而不是替换它? 给定一个看起来像这样的现有状态对象: { prop1:someValue, prop2:someOtherValue } 我希望能够调用将修改 p
我使用的是 History.js 框架,我只使用了 replaceState 方法。 我的问题是关于 replaceState 行为,因为它替换了所有查询字符串。 History.replaceSta
有什么方法可以在不重新加载的情况下用 JavaScript 替换 url 吗?例如 www.url.com/index.php/presenter/view/../ 到 www.url.com/pre
我正在构建一个显示数据表的组件。当他们向该数据添加和删除过滤器时,我想用 replaceState 修改 queryString,但据我所知,没有方法可以做到这一点。 有没有办法告诉转换使用 repl
我对此快疯了。我已经阅读了我能找到的有关该主题的所有内容,但我迷失了...... 我有一个带有按钮和 2 个 iframe 的页面。 单击该按钮会更改 2 个 iframe 的 URL。 $(d
我正在使用 window.history.replaceState 并遇到一些问题,因为它不断附加到网址。 它已被标记为 this question 的重复项我认为这是一个错误,因为当我使用该代码时,
这个问题在这里已经有了答案: monitoring history.pushstate from a chrome extension (3 个答案) How to detect page navi
当用户访问我网站的根文件夹 (www.mysite.com) 时,我想将网址更改为 www.mysite.com/home。 我正在使用 History.js 来实现此目的,并且我正在使用以下代码:
具体来说,调用下面的代码片段: history.replaceState(undefined, undefined, "#" + value) 不会正确地影响当前页面的后退按钮行为,但会向“浏览历史”
我在所有浏览器中都面临这个问题。每当我尝试在 Google 缓存中查看我的网站时都会出现此问题 main.bundle.js:1 ERROR Error: Uncaught (in promise):
我有一个站点的测试版本位于正常站点的子域中,例如: http://test.x.com而不是 http://x.com . 我使用 将所有资源请求转换回原始域的标记: 在我实现 HTML5 push
我有window.history.replaceState(null, null, 'about');在 main.js位于 required/javascripts在我的服务器上。 然后在关于页面(
我是一名优秀的程序员,十分优秀!