我必须根据浏览历史实现一些业务逻辑.
我想做的是这样的:
reactRouter.onUrlChange(url => {
this.history.push(url);
});
Run Code Online (Sandbox Code Playgroud)
当URL更新时,有没有办法从react-router接收回调?
reactjs react-router react-router-redux react-router-v4 react-router-dom
useHistory ()挂钩在我的项目中不起作用。我把它放在不同的组件中,但它们都不起作用。我正在使用“react-router-dom”:“^5.2.0”,
import {useHistory} from 'react-router-dom'
const history = useHistory()
const logout = () => {
toggleMenu()
setUser(null)
dispatch({type: 'LOGOUT'})
history.push('/')
}
Run Code Online (Sandbox Code Playgroud)
而且在行动中它也不起作用
export const signin = (formdata, history, setError) => async (dispatch) => {
try {
const {data} = await API.signIn(formdata)
if(data.error){
setError(data.message)
}else{
dispatch({type: SIGNIN, data})
history.push('/dashboard')
}
} catch (error) {
setError(error)
console.log(error)
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的 router.js 文件
const Router = () => {
const user = JSON.parse(localStorage.getItem('profile'))
return (
<BrowserRouter>
<>
{user && <Navigation/>}
<Switch> …Run Code Online (Sandbox Code Playgroud)