如何使用react-route Link刷新页面

Ann*_*nna 36 javascript reactjs react-router

我正在尝试使用react-route Link刷新页面.但是我实现它的方式又向后退了一步.(例如,如果URL是../client/home/register,当我按下重新加载时转到../client/home)

下面是我的代码

const AppErrorPage = () => (
    <div>
    <div style={ styles.container }>
        <h2>Error</h2>
        <p> Something went wrong, please reload the page </p>
        <div>
         <Link to="" refresh="true">
            <span>Reload</span>
          </Link>
        </div>
    </div>
    </div>  
);
Run Code Online (Sandbox Code Playgroud)

Luk*_*kas 82

要刷新页面,您不需要react-router,简单的js:

window.location.reload();
Run Code Online (Sandbox Code Playgroud)

要在React组件中重新渲染视图,您可以使用props/state触发更新.

  • `&lt;button type="button" onClick="refreshPage()"&gt; &lt;span&gt;重新加载&lt;/span&gt; &lt;/button&gt;函数refreshPage(){ window.parent.location = window.parent.location.href; }` (2认同)

Jyo*_*aja 12

试试这样吧.

你必须给一个函数作为值 onClick()

你按钮:

<button type="button" onClick={ refreshPage }> <span>Reload</span> </button> 
Run Code Online (Sandbox Code Playgroud)

refreshPage函数:

function refreshPage(){ 
    window.location.reload(); 
}
Run Code Online (Sandbox Code Playgroud)

  • 这是错误的,因为函数将在渲染期间被调用。查看我的回答下的评论 (2认同)
  • @LukasLiesis 谢谢你 只是被忽视了。更新了 (2认同)

小智 11

您只需在查询成功后运行即可。

window.location.reload();
Run Code Online (Sandbox Code Playgroud)


sig*_*i13 9

我最终保留了 Link 并将重新加载添加到 Link 的 onClick 事件中,超时如下:

function refreshPage() {
    setTimeout(()=>{
        window.location.reload(false);
    }, 500);
    console.log('page to reload')
}

<Link to={{pathname:"/"}} onClick={refreshPage}>Home</Link>
Run Code Online (Sandbox Code Playgroud)

如果没有超时,刷新函数会先运行


Fer*_*usi 5

你可以用这个

<a onClick={() => {window.location.href="/something"}}>Something</a>
Run Code Online (Sandbox Code Playgroud)