【问题标题】:how to reload the page after call handleDelete but it stays on the current page,not reload to the homepage, i want stay on the current page调用handleDelete后如何重新加载页面但它停留在当前页面上,而不是重新加载到主页,我想留在当前页面上
【发布时间】:2022-01-05 09:14:20
【问题描述】:
handleDelete: props => (id) => {
  props.deleteClaim(id)
  .then(() => {
    message.success('success delete')
  })
  setTimeout(() => {
    window.location.reload(true)
  }, 1000)
},

问题是每次我在第2页运行delete函数,我都会立即返回主页面,

如何做到这一点,以便在重新加载时可以停留在第 2 页。

【问题讨论】:

  • 如果您使用的是 React,那么为什么需要重新加载页面?通常当您更改某些数据时,您会重新渲染页面。

标签: javascript reactjs antd reload web-frontend


【解决方案1】:

删除 setTimeOut 代码,因为它使您移动到主页。 “重新加载”意味着浏览器再次重新加载您的整个页面,这意味着浏览器刷新您的应用程序并再次向您显示主页。

handleDelete: props => (id) => {
  props.deleteClaim(id)
  .then(() => {
    message.success('success delete')
  })
},

【讨论】:

  • 提前感谢您的帮助,重新加载问题已经解决,但我想要的是在我重新加载到第2页后,我停留在第2页,而不是回到第1页
  • 你应该检查你创建的函数,因为 React 在重新渲染时不会移动页面。 React 只是更改更新的组件而不是移动页面。移动页面意味着您所做的某些功能会产生卸载页面 2 或重新渲染页面的父组件的效果。如果我的回答对你有帮助,请选择我的回答 :D 祝你有美好的一天!
【解决方案2】:

我不认为在 React 中重新加载页面是一个好主意,因为它没有达到 SPA(单页应用程序)的目的。如果您想让自己停留在第 2 页上,那么为什么首先要重新加载? 删除时,您可能会认为删除的对象应该反映在前端,因此您可以做两种情况:

  • 重新获取您的数据
  • 或在 API 响应成功后从前端列表中删除该对象

【讨论】:

  • 运行window.location.reload(true)后如何获取数据以保持在页面上?
  • 就像你第一次抓取一样,你正在做消息成功的地方删除,下面你可以重新抓取
【解决方案3】:

为了在刷新后保持在同一页面上,该页面必须位于单独的路由上。在这种情况下,刷新页面后,您将停留在该页面上。 我对你的建议是使用状态管理器,不要让你的生活复杂化。 如果您希望在页面刷新时保存数据,则需要将其存储在 localstorage 中或从服务器获取。没有其他办法

【讨论】:

    猜你喜欢
    • 2020-04-03
    • 2019-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-21
    • 1970-01-01
    相关资源
    最近更新 更多