Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ReactJS与React路由器-Chrome上奇怪的路由行为_Javascript_Reactjs_Axios - Fatal编程技术网

Javascript ReactJS与React路由器-Chrome上奇怪的路由行为

Javascript ReactJS与React路由器-Chrome上奇怪的路由行为,javascript,reactjs,axios,Javascript,Reactjs,Axios,这有点奇怪,我想弄清真相 我有一个页面,用户键入他们的电子邮件地址,然后单击一个按钮,然后我显示“您已注册!”消息-简单 为此,我有两条路线。主要路线和“签约”路线 现在,当我第一次键入我页面的URL时 http://localhost:1338 浏览器(Chrome、FireFox、Safari)似乎都将URL更改为 http://localhost:1338/#/ 很公平。在FireFox中,我键入一封电子邮件,然后单击submit按钮,这一切都很好,并将我带到 http://local

这有点奇怪,我想弄清真相

我有一个页面,用户键入他们的电子邮件地址,然后单击一个按钮,然后我显示“您已注册!”消息-简单

为此,我有两条路线。主要路线和“签约”路线

现在,当我第一次键入我页面的URL时

http://localhost:1338
浏览器(Chrome、FireFox、Safari)似乎都将URL更改为

http://localhost:1338/#/
很公平。在FireFox中,我键入一封电子邮件,然后单击submit按钮,这一切都很好,并将我带到

http://localhost:1338/#/signed-up
然而,现在在Chrome上,当我点击submit时,它不会改变路线。事实上,在开发者控制台上,我看到了一个错误

首先,为什么“post”请求被取消?其次,当这种情况发生时,Chrome没有响应能力。所以我刷新了页面,然后我得到了Chrome的“海军屏幕死亡”

现在,有趣的是,如果我将初始URL更改为

http://localhost:1338/?#/
(在散列前面插入问号),然后在Chrome上运行良好。所以,这让我怀疑这与我的路径或参数有关


有什么想法吗?

几个小时前刚刚遇到这个问题

因此,您的组件中有类似的内容(es6语法):


您是否尝试过仅使用HistoryLocation API?而不是散列URL。如果可以,我会单击向上箭头10次。我在Angular 2 RC6上遇到过这种情况,花了好几天时间追踪我的尾巴,通过路由器追踪,试图弄清楚到底发生了什么。然后我在这里看到了你的解释——烟火和教堂的钟声!我不知道点击非提交按钮会导致提交。最后,为了解决我的问题,我只需要改成。感谢您分享您的见解@ckapilla我鼓励您使用标记,因为它更准确,代码更清晰:对于表单提交,您应该始终使用提交事件+preventDefault(如果需要)。@KeitlG感谢您的输入,但是在我的情况下,我不想进行表单提交,只想链接到另一个表单。事实上,提交是在没有任何意图的情况下进行的,这让我陷入了一个循环。
http://localhost:1338/#/signed-up
http://localhost:1338/?#/
render() {
    return (
        <form onSubmit={ this.submit.bind(this) }>
            { /* inputs stuff here */ }
        </form>
    );
}

submit() {
    // Ajax request here
}
submit(e) {
    e.preventDefault()
    // Ajax request here
}