繁体   English   中英

如何防止位置对象在重新加载 reactjs 时重置

[英]how to prevent location object to reset on reload reactjs

我正在使用 Link 来重新直接调用另一个组件。 像这样的东西

<Link to={{ pathname: "/app/" + app.appId, appDetail: { app: app } }}>>

在调用路径 /app/:appId 它调用 AppDetails 组件。 我在 location 对象中获取 appDetail 对象。

但是在重新加载路线 /app/:appId 时,位置对象中的这个 appDetail 变得未定义。 那么如何防止这种情况发生,以便在重新加载 /app/:appId 时,来自 location 对象的 appDetail 不应未定义

有很多方法可以控制这种行为,这里是一种:尝试将位置对象放在 if 条件中,例如:

if(!location) {
  return <>Loading...</>
}

上述条件将保持执行,直到条件满足

state属性可以将数据传递给其他组件。 所以你可以做这样的事情:

<Link to={{
  pathname: "/app/" + app.appId,
  state: { appDetail: { app: app }}
}}>

并在其他组件中获取appDetail

const { appDetail } = this.props.location.state;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM