虽然操作成功,但是重定向不起作用,但是history.replace起作用。 为什么?
tree_limit
请转到登录页面并进行检查。 Codesandbox链接-https://codesandbox.io/s/winter-hooks-s9vgx
答案 0 :(得分:2)
您正在从onSubmit方法调用重定向JSX组件。但是您不能这样做,因为您需要从render方法中返回JSX元素,这就是为什么您需要使用history to update route
onSubmit={(values, { resetForm, setErrors, setSubmitting }) => {
setTimeout(() => {
console.log("Logging in", values);
setSubmitting(false);
this.props.history.replace("/dashboard");
}, 500);
答案 1 :(得分:1)
您必须使用斜杠:
to='/dashboard'
答案 2 :(得分:1)
就像@Shubham Khatri所说的那样,但是如果您想使用<Redirect>
,则可以创建一个状态并检测是否已记录状态,然后像this那样将其重定向。
变化正在增加
this.state = {
isLoggedIn: false
};
在渲染中
if (this.state.isLoggedIn) return <Redirect to="/dashboard" />;
在onSubmit
中this.setState({ isLoggedIn: true });