Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.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
Javascript 如何在重定向页面上重新加载页面_Javascript_Reactjs - Fatal编程技术网

Javascript 如何在重定向页面上重新加载页面

Javascript 如何在重定向页面上重新加载页面,javascript,reactjs,Javascript,Reactjs,在我的应用程序中,我使用React Router向我的应用程序添加路由。一旦用户单击“保存”,我将使用带有路由器的历史记录从我的AddAlbum类组件重定向到我的主页(提要)。我的问题是我的AddAlbum组件正在更新我的主页,因此我需要在重定向以查看AddAlbum组件所做的更改后重新加载我的主页。我将如何做到这一点 以下是我的App.js组件中的路线: import { BrowserRouter, Router, Route } from "react-router-dom"; retur

在我的应用程序中,我使用React Router向我的应用程序添加路由。一旦用户单击“保存”,我将使用带有路由器的
历史记录从我的AddAlbum类组件重定向到我的主页(提要)。我的问题是我的AddAlbum组件正在更新我的主页,因此我需要在重定向以查看AddAlbum组件所做的更改后重新加载我的主页。我将如何做到这一点

以下是我的App.js组件中的路线:

import { BrowserRouter, Router, Route } from "react-router-dom";
return (
    <BrowserRouter>
      <div className="App">
      <Router history={history}>
      <Route path="/album/create" component={AddAlbum}/>
      <Route exact path="/feed" component={Feed}/>
      </Router>
      </div>
    </BrowserRouter>
  );

一旦重定向到主(源)组件,我将如何重新加载它?

问题:在您的
axios.post
之后(在
catch
之前的9行),您不会更新您的状态。这就是为什么你看不到这些变化

解决方案1:如果POST请求正确返回,请更新您的状态(将相册添加到相册阵列中)

解决方案2:如果POST请求正确返回,请使用
window.location.reload()
重新加载页面,这样您就可以从apicall更新相册。大概是这样的:

    axios.post(yourURL, yourData)
        .then(res => {
            // check if response is correct and
            window.location.reload();
        })
        .catch(console.error);

希望有帮助。

问题:在您的
axios.post
之后(在
catch
之前的9行),您不会更新您的状态。这就是为什么你看不到这些变化

解决方案1:如果POST请求正确返回,请更新您的状态(将相册添加到相册阵列中)

解决方案2:如果POST请求正确返回,请使用
window.location.reload()
重新加载页面,这样您就可以从apicall更新相册。大概是这样的:

    axios.post(yourURL, yourData)
        .then(res => {
            // check if response is correct and
            window.location.reload();
        })
        .catch(console.error);

希望有帮助。

我刚刚快速扫描了您的代码,但我认为问题出在您的axios post请求中。这样,当您重定向到
/feed
时,它将从该端点提取更新的数据

axios.post(“http://localhost:3000/albums“,数据,{})
。然后(res=>{
//然后打印响应状态
console.log(res.statusText);
//仅当http请求完成时重定向。
历史。推送(“/feed”);
});

我刚刚快速扫描了您的代码,但我认为问题出在您的axios post请求中。这样,当您重定向到
/feed
时,它将从该端点提取更新的数据

axios.post(“http://localhost:3000/albums“,数据,{})
。然后(res=>{
//然后打印响应状态
console.log(res.statusText);
//仅当http请求完成时重定向。
历史。推送(“/feed”);
});

您是否使用某种全局状态?因为在每次管线更改时,组件都应再次渲染。没有任何旧的价值观。@JeanAguilar你所说的全球状态是什么意思?在哪里?如果我点击React路由器的链接,我认为它不应该重新加载。Idk关于我是否使用withRouter重定向。重定向工作正常,对吗?是的,重定向工作正常。请添加AddAlbum组件的更多代码。特别是保存按钮部分。您是否使用某种全局状态?因为在每次管线更改时,组件都应再次渲染。没有任何旧的价值观。@JeanAguilar你所说的全球状态是什么意思?在哪里?如果我点击React路由器的链接,我认为它不应该重新加载。Idk关于我是否使用withRouter重定向。重定向工作正常,对吗?是的,重定向工作正常。请添加AddAlbum组件的更多代码。特别是Save按钮部分。如果我在我的主页(提要)组件中添加与
componentDidMount()
设置状态相同的
componentdiddupdate
,我的组件将在页面上获取新数据。唯一的问题是我收到一条警告:
warning:无法对未安装的组件执行React状态更新。这是一个no-op,但它表示应用程序中存在内存泄漏。要修复此问题,请取消componentWillUnmount方法中的所有订阅和异步任务。
我在这里问了一个问题:这看起来是另一个问题:相册似乎处于提要状态,提要已卸载。您可以将该变量置于某个父状态,或者更简单地说,使用解决方案2并执行
window.location.reload()
my componentDidUpdate
,如果我在my home(提要)组件中使用与
componentDidMount()
相同的设置状态添加
componentDidMount()。唯一的问题是我收到一条警告:
warning:无法对未安装的组件执行React状态更新。这是一个no-op,但它表示应用程序中存在内存泄漏。要修复此问题,请取消componentWillUnmount方法中的所有订阅和异步任务。
我在这里问了一个问题:这看起来是另一个问题:相册似乎处于提要状态,提要已卸载。您可以将该变量置于某个父状态,或者更简单地说,使用解决方案2并执行
window.location.reload()