代码之家  ›  专栏  ›  技术社区  ›  BADRUM

执行两个获取功能后,如何导航回页面?

  •  0
  • BADRUM  · 技术社区  · 1 年前

    我有一个问题,我在函数中使用了两次fetch。如果我在没有 useNavigate 两个fetch函数都被正确地执行,但是只有一个fetch功能被执行。我想知道这是否与异步有关

    这是不使用的 Navigate 这很好用

    updateTrahcan = (messagedata) => {
            fetch(
                "url" + (this.state.MessageEdit.id) + ".json",
                {
                    method: "PUT",
                    body: JSON.stringify(messagedata),
                    headers:{
                        "Content-Type": "application/json"
                    }
                }
                ).then(() => {
                    fetch(
                        "url" + (this.state.MessageEdit.id) + ".json",
                        {
                            method: "DELETE",
                            body: JSON.stringify(messagedata),
                            headers:{
                                "Content-Type": "application/json"
                            }
                        }
                    )
                })
        }
    

    这是使用 导航 其中仅执行一个获取函数

    updateTrahcan = (messagedata) => {
            fetch(
                "url" + (this.state.MessageEdit.id) + ".json",
                {
                    method: "PUT",
                    body: JSON.stringify(messagedata),
                    headers:{
                        "Content-Type": "application/json"
                    }
                }
                ).then(() => {
                    fetch(
                        "url" + (this.state.MessageEdit.id) + ".json",
                        {
                            method: "DELETE",
                            body: JSON.stringify(messagedata),
                            headers:{
                                "Content-Type": "application/json"
                            }
                        }
                    )
                }).then(() =>{
                     this.props.navigation(0);
                )
        }
    

    感谢您的帮助

    1 回复  |  直到 1 年前
        1
  •  1
  •   Ghadeer Ahmad    1 年前

    试着这样做

    updateTrahcan = async (messagedata) => {
        await fetch(
            "url" + (this.state.MessageEdit.id) + ".json",
            {
                method: "PUT",
                body: JSON.stringify(messagedata),
                headers:{
                    "Content-Type": "application/json"
                }
            }
            )
         await fetch(
                    "url" + (this.state.MessageEdit.id) + ".json",
                    {
                        method: "DELETE",
                        body: JSON.stringify(messagedata),
                        headers:{
                            "Content-Type": "application/json"
                        }
                    }
                )
            })
            this.props.navigation(0);
            
    }
    

    希望这能为你做好工作。