Reactjs 对获取和发布到后端(API)有何影响?

Reactjs 对获取和发布到后端(API)有何影响?,reactjs,axios,react-hooks,Reactjs,Axios,React Hooks,这更像是一个问题,要知道你们这些家伙通常是怎么做的。我目前对代码没有任何问题,但我不确定这样做是否正确 在我的代码中,我对后端的数据(一个包含对象的简单列表)有一个fetch(使用Axios)。为此,我使用了新的带有useEffect的React钩子,它就像一个符咒: useEffect(() => { axios .get("http://localhost:5000/api/list") .then(result => { setE

这更像是一个问题,要知道你们这些家伙通常是怎么做的。我目前对代码没有任何问题,但我不确定这样做是否正确

在我的代码中,我对后端的数据(一个包含对象的简单列表)有一个fetch(使用Axios)。为此,我使用了新的带有useEffect的React钩子,它就像一个符咒:

useEffect(() => {
    axios
      .get("http://localhost:5000/api/list")
      .then(result => {
        setExampleList(result.data);
      })
      .catch(error => console.log(error));
  }, [setExampleList]);
但我也有一个屏幕,在那里添加到后端列表的过程来了。为此,我在后台使用axios处理表单提交。这就是问题所在。它可以工作并转到后端,但我的获取没有更新,因为它没有重新提交或其他内容。然后我提出了调用setData()的ideia,在该函数中,抓取位于用于添加新项的函数中(发布后):

这是可行的,但正如您所想象的,有点“假”,因为在我重新加载页面之前,数据并不是后端的数据。你们有没有这样做过?在这种情况下,最好的解决方案是什么?

即使没有刷新问题,通常也会“伪造”更新列表。这是因为你希望你的应用程序在用户看来很快。如果后端请求需要5秒才能完成,然后更新屏幕,则用户会认为您的应用程序已损坏

在聊天应用程序中,在消息实际发送之前将消息显示为已发送是非常常见的。删除项目时经常使用相同的概念。在后端更新之前,该项立即从屏幕上删除,不需要刷新

您可能希望添加一条UI消息,告诉用户提交是否失败,这样他们就不会刷新页面,并想知道为什么列表中缺少新项目

来回答你的问题

你们有没有这样做过?是的

在这种情况下,最好的解决方案是什么?如果列表是针对单个用户的,那么您的解决方案非常好


也就是说,如果您希望多个用户同时更新列表,那么您需要在页面刷新之前同步列表。

显示您的代码。请共享您的代码您好!谢谢你的回复。很抱歉,我没有发布代码。我认为这可能是一个问题,而不张贴它。竖起大拇指不太酷。但是好的。我用代码编辑问题!用代码(Y)编辑问题哇。冷静的解释。谢谢因此,我的应用程序将为每个用户提供一个列表。哪一个(会有一个,也就是说我觉得没问题)。但我目前正在对来自后端前端的数据进行一些处理,可能需要重新加载它。你知道怎么做吗?我应该再次调用axios fetch for list吗?我会用我的代码编辑这个问题我有!创建了一个函数来处理列表的获取,在处理表单后,我称之为此函数:)顺便说一句,感谢您的精彩解释,我将接受它作为正确的解决方案,因为我更关注解决问题的体系结构,您真的帮助了很多。
function handleSubmit(event) {
    event.preventDefault();
    let obj = {
      name: name,
      city: city
    };
    axios
      .post("http://localhost:5000/api/add", obj)
      .then(response => {
        console.log(response.data);
        obj.id = response.data.inserted_id;
        setExampleList([...setExampleList, obj]);
      })
      .catch(error => {
        console.log(error);
      });
    handleCloseModal();
  }