javascript - React Js组件未更新

标签 javascript reactjs

我使用一个名为 New 的组件两次,一次为/New另一个 /Edit因为所有input此页面中应该用于编辑页面,因此我决定再次使用此组件,但在某些条件下设置数据。

路由器

<Route exact path='/New' component={New}></Route>
<Route exact path='/Edit/:id' component={New}></Route>

在两个页面中使用该组件都没有问题,但如果用户在编辑页面中,点击 navigation ,参见/New包含一些属于 /Edit 的值的页面页面,这意味着页面未正确更新,导航包含许多<Link/>

<Link to="/New"><Icon name="home"/>New Order</Link>

但是如果我使用window.location.href = "/New"而不是<Link/> ,或直接href它工作正常:

<a href="/New"></a>

那么知道如何解决这个问题吗?我想在点击 <Link/> 时更新页面.

最佳答案

如果您使用 componentDidMount 内的条件; <Link/>只需在组件之间切换,而不是重新加载和更新组件,并且您将一个组件用于两个不同的 route有一个!避免此问题的巧妙方法:

<div onClick={() => window.location.reload()}><Link to="/New"><Icon name="home"/>New Order</Link></div>

或者/

<Link onClick={this.forceUpdate} to="/New"><Icon name="home"/>New Order</Link>

__ 或 __

  1. 不要使用相同的组件进行编辑

  2. 强制使用 window.location.href

关于javascript - React Js组件未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59590071/

相关文章:

javascript - 确定标记化 html 输入中的插入符位置?

ajax - 无法读取 Reactjs 中未定义的属性

reactjs - 我们可以通过 React props 覆盖 scss 变量吗?可能吗?

reactjs - 当服务器关闭时 React-Apollo 捕获

javascript - 使用无状态函数定义组件时如何初始化状态

javascript - 使用 Lodash groupby 和 map 转换对象数组

javascript - 将对象键值附加到 <li>

javascript - 如何在 JavaScript 中比较两个数字

javascript - 两个嵌套 ng-repeat 上的 Angular 自定义过滤

reactjs - 导入 "TypeError: Cannot read property ' 包时出现错误 "React-Magnific-Popup"object' of undefined"