首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >限制导航以防止浏览器挂起-反应

限制导航以防止浏览器挂起-反应
EN

Stack Overflow用户
提问于 2021-06-20 10:33:04
回答 1查看 234关注 0票数 0

Throttling navigation to prevent the browser from hanging. See https://crbug.com/882238. Command line switch --disable-ipc-flooding-protection can be used to bypass the protection

这是它抛出的完整警告:

我的代码:

代码语言:javascript
代码运行次数:0
运行
复制
import { login, resetState } from "../../store/auth/authActions";
import { isAuthenticated } from "../../utils/auth";

const Login = ({ history }) => {
  const dispatch = useDispatch();

  //joi schema
  ....

  //react hook form setup
  const {
    register,
    handleSubmit,
    setError,
    clearErrors,
    formState: { errors },
  } = useForm({
    resolver: joiResolver(schema),
  });

  useEffect(() => {
    dispatch(resetState(clearErrors));
    if (isAuthenticated) {

      //AS SOON AS I UNCOMMENT THE NEXT LINE THROWS THE WARNING IN LOOP
      // history.push("/dashboard");
    }
  }, [clearErrors, dispatch, history]);

  const onSubmit = (data) => {
    dispatch(resetState(clearErrors));
    dispatch(login(data));
  };

  // global state
  const serverSideErrors = useSelector((state) => state.auth.errors);

  useEffect(() => {
    Object.entries(serverSideErrors).forEach(([i, v]) => {
      setError(i, {
        message: v[0],
      });
    });
  }, [serverSideErrors, setError]);

return (...)

export default Login;

在这里,您可以看到一行:history.push("/dashboard");这似乎是导致问题的原因。如果我注释这一行。这一警告将会消失。

我还尝试过:

代码语言:javascript
代码运行次数:0
运行
复制
  useEffect(() => {
    dispatch(resetState(clearErrors));
    if (isAuthenticated) {
      history.push("/dashboard");
    }
  }, []);

但问题是一样的。我怎么能解决这个问题呢?我在这里错过了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-20 20:43:47

我的猜测是dispatch(resetState(clearErrors));改变了clearErrors引用。由于clearErrors是同一个钩子的依赖项,并且它在钩子中更改,因此它在循环中被调用,并重复运行history.push("/dashboard");

你应该有条件地执行dispatch(resetState(clearErrors));,否则它总是会在循环中结束。

PS:如果你能发布一个这个问题的最低限度的回购,我也许能更好地帮助你。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68052206

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档