繁体   English   中英

在reactjs中,当在setTimeout延迟中设置时,this.props.history.push('/')重定向不起作用

In reactjs this.props.history.push('/') redirect doesn't work when set in a setTimeout delay

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我有一个通行证,可以将用户重定向到首页,因此我一直在使用它

this.props.history.push('/')

效果很好,但现在我们要延迟此操作,因此我将整个内容包装在setTimeout函数中

setTimeout(function () {
  this.props.history.push('/')
}, 1500);

但这会中断并给我错误“ TypeError:无法读取未定义的属性” history”

我尝试将props值添加到const,然后在const值上设置超时,但是仍然没有任何乐趣,我看不到任何原因为何不起作用,所以我碰到了砖墙,有人可以掉下吗给我一些启示吗?

2 个回复

它的背景下this是传给你的麻烦。

试试像下面绑定this到您的内部函数

setTimeout(() => {
  this.props.history.push('/')
}, 1500);

上面的答案有效,但是如果由于某些原因箭头功能对您不起作用,则可以执行以下操作

创建一个方法

gotoHome(){
   this.props.history.push('/')
}

将方法绑定到context: this

如果您的组件具有构造函数,则最好在其中进行绑定

this.gotoHome = this.gotoHome.bind(this)

将方法传递给setTimeout

setTimeout(this.gotoHome, 1500)
3 REACT this.props.history.push不重定向

我有这种搜索方法,我想在搜索后重定向用户。 问题是它没有做任何事情,我不知道为什么。 this.props.history已定义,但对象“history”的“location”属性似乎没有相应于我在push方法的参数中放入的内容('./connexion')...搜索方法IS binded我 ...

2017-06-26 12:47:09 2 1549   reactjs
4 反应 this.props.history.push()

我正在使用this.props.history.push("/url")的历史对象。 我被导航到推送函数中传递的 URL,但是当我在浏览器中回击时,只有 URL 更改为以前的状态,但它没有被加载。 对此的任何解决方案或解决此问题的任何替代方法都将不胜感激。 ...

5 this.props.history.push未定义

我正在创建带有一些预定义值的表单,并且一旦提交表单,我想路由到仪表板页面。 我在表单的onsubmit上使用handleLoginSubmit func。 为此,我有以下代码: 但是,我收到错误消息,说历史未定义。 请在这里帮我 ...

7 this.props.history.push不起作用

当我导出类似的组件时: 绑定到的按钮可以正确更改react-router v4中的页面。 但是,在我的main.js文件中,我目前正在尝试获取以下内容: 上班。 但这只是给我一个类型错误。 我确实安装了所有正确的依赖项,并且在其他组件中也可以正常工作。 我目前在 ...

8 props.history.push()不重定向

props.history.push(“/”)不重定向。 我确实搜索了这个问题的解决方案,找不到问题出在哪里,这让我发疯。 index.js app.js Login.js 正如您所看到的,Login组件包含withRouter(Login)。 Login. ...

10 React- this.props.history.push('pathname') 不起作用?

我目前正在编写一个小型 CRUD 应用程序。 对于我的前端,我使用的是 React v6。 在我的代码中,我有一个实体列表,在上面我会有一个按钮,可以将我带到一个表单,让我在表中添加一个新条目。 但是,即使我路由了不同的 URL,在单击按钮后,我还是收到一条错误消息:无法读取未定义的属性(读取“推送 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM