Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 如何阻止useEffect每次重新加载我的页面?_Reactjs_Axios_Use Effect_Use State - Fatal编程技术网

Reactjs 如何阻止useEffect每次重新加载我的页面?

Reactjs 如何阻止useEffect每次重新加载我的页面?,reactjs,axios,use-effect,use-state,Reactjs,Axios,Use Effect,Use State,出于某种原因,每次从数据库获取状态后,我的整个页面都会重新加载。页面在闪烁,我最后出现在页面的顶部。为什么会这样 我在其他函数(如sort)中更新了整个状态,该函数无需重新加载即可完美工作。我在每个单击处理程序中都添加了event.preventDefault,所以这不应该是问题所在 使用React的一个好处是拥有一个平滑的UI,而无需重新加载,所以这很烦人 function App() { const [contacts, setContacts] = useState({ items:

出于某种原因,每次从数据库获取状态后,我的整个页面都会重新加载。页面在闪烁,我最后出现在页面的顶部。为什么会这样

我在其他函数(如sort)中更新了整个状态,该函数无需重新加载即可完美工作。我在每个单击处理程序中都添加了event.preventDefault,所以这不应该是问题所在

使用React的一个好处是拥有一个平滑的UI,而无需重新加载,所以这很烦人

function App() {
  const [contacts, setContacts] = useState({ items: [] });

  useEffect(() => {
    axios
      .get('http://localhost:5000/')
      .then((result) => {       
        setContacts({ items: result.data });
      })
      .catch((err) => console.log(err));
  }, []);
这就是被调用的函数:

const handleSubmit = (event) => {
    event.preventDefault();

    if (!id) {
      axios
        .post('http://localhost:5000/add/', input)
        .then(() => {
          setInput(emptyState);
        })
        .catch((err) => console.log(err));
    } else {
      axios
        .post(`http://localhost:5000/update/${id}`, input)
        .then(() => {
          props.updateContact(input);
          setInput(emptyState);
        })
        .catch((err) => console.log(err));
    }
    window.location = '/';
  };

你需要在你的[]里放点东西。 您可以看到,我们在第二个参数中将props.name传递到数组中。现在,当名称更改时,该效果将始终再次运行。
如果你没有通过任何东西,它将始终更新,将是无用的

useEffect=>{ document.title=`第页,共${props.name}`
},[props.name]您应该创建一个最小的可复制示例,最好是关于我不认为您遇到的问题是由于提供的代码造成的。如果我将联系人放在[]中,我会创建一个不断从数据库获取的无限循环。如果我在没有useEffect的情况下使用axios,我会再次创建无限循环,因此useEffect非常重要。你建议我在[]里放什么?这是逻辑。。。如果你把接触和改变接触在你的使用效果将是无限的。找到一些你可以放进去的东西,在它之后,它将获取你的数据。它将始终更新,并且将是无用的-这不是真的。作为依赖项参数的空数组将导致该效果在组件装载时仅运行一次。这绝对不是没用的,而且是经常使用的。不是说空数组,而是一个内部有联系人的数组。。。