繁体   English   中英

重定向而不重新加载页面

[英]redirect without reloading the page

我正在做一个登录页面,我希望当这个人正确登录时将他重定向到一个页面但没有重新加载,我尝试使用 useHistory 来做,但它对我不起作用

    import React, { Component } from 'react'
import './main.css';
import {BrowserRouter as Router, Switch, Route, Link, Redirect,
  useHistory,
  useLocation, browserHistory, withRouter} from 'react-router-dom';

import Register from './components/ComponentRegister'
import Login from './components/ContainerLogin'
import ChatPrincipal from './Chat/ChatPrincipal'

事件代码

  login = (username, password) =>{
    const history = useHistory()
    fetch('/api/login', {
      method: 'POST',
      headers: {
        'Accept': 'application/json',
        'Content-Type': 'application/json'
      },
      body: JSON.stringify({username: username, password: password})
    })
    .then(r => r.json())

    .then(data =>{
      console.log(data.status)
      if(data.status === 200){
        console.log('si')
         this.setState({
          status: data.status,
          message: data.message,
          username: username
        })
        this.userSearch() 
        // window.location.href = "/"
        history.push('/') <===================================


      }else{
        this.setState({
          messageError: data.message,
          status: data.status
        })
        console.log('Error')
        const error = document.getElementById('Error')

      }
    }) 
 
    
  }

我不知道为什么它对我不起作用,但如果有人知道修复它的方法或不更新重定向的库,请帮助我

你可以试试

history.replace({ pathname: '/'})

这是工作演示

请注意,在这种情况下,您需要在更换 url 后处理更改内容

暂无
暂无

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

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