账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    react组件内部调用 window.location失效
    32
    0

    遇到一个比较奇怪的问题, 程序大致逻辑如下

        export default class MyAwesomeComponent extends React.Component{
            constructor(props){
                super(props)
                this.handleClick = this.handleClick.bind(this)
            }
            
            handleClick(){
                //do some expression
                window.location = 'url I want to jump'
            }
            
            render(){
              return <button onClick={this.handleClick}/> 
           }
        }
    

    注意到handleClick里的window.location, 没有被正确执行。
    改成

        handleClick(){
            setTimeout(()=>window.location = 'url I want to jump')
        }

    这里应该是通过setTimeout解决单线程问题。
    问题是,为什么会出现单线程的时序问题?老司机能解释吗?

    ps: 实际问题是运行在定制化的react、redux环境中的,不排除是定制化的代码部分锁着了window.location

    thx

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 炜古擎辰 普通会员 1楼
      502 Bad Gateway

      502 Bad Gateway


      nginx
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部