Javascript 当用户直接导航到页面时,将默认状态传递给链接

Javascript 当用户直接导航到页面时,将默认状态传递给链接,javascript,reactjs,react-router,gatsby,Javascript,Reactjs,React Router,Gatsby,在我的GatsbyJs应用程序中,我通过组件传递状态参数。状态中的此参数指示用户导航到页面后要显示的内容 <Link to={`/${link}`} state={{ dataRef: dataToDisplay }} key={j} > {heading} </Link> {标题} 这个很好用 但是,当用户直接导航到页面(在地址栏中插入地址)时,我得到错误:TypeError:\u this.props.location.state为null,因为

在我的GatsbyJs应用程序中,我通过
组件传递状态参数。状态中的此参数指示用户导航到页面后要显示的内容

<Link
  to={`/${link}`}
  state={{ dataRef: dataToDisplay }}
  key={j}
>
  {heading}
</Link>

{标题}
这个很好用

但是,当用户直接导航到页面(在地址栏中插入地址)时,我得到错误:
TypeError:\u this.props.location.state为null,因为状态为空

我的尝试:

在我的
页面
组件中,我试图将
默认值
传递给
this.props.location.state
,形式如下:

const{state={dataRef:“foo”}}=this.props.location

但是,这也不起作用&返回了相同的错误。所以我的问题是,如何在state中设置default
dataRef
属性,这样当用户直接在addressbar中键入页面地址时,页面就会加载默认参数

谢谢

如果
状态
未定义的
,那么这将起作用,但由于它是
空的
,它仍然是
空的
。你试过这样的东西吗

const state = this.props.location.state || { dataRef: "foo" }

用户重新加载时不能传递状态,可以使用我所做的查询参数。然而,解决方案要简单得多。我所做的只是使用一个三元运算符来检查状态是否存在,如果不存在,则使用默认值,否则使用状态。谢谢你在时间和支持上帮助盖茨比新手德里克,我很感激。
const state = this.props.location.state || { dataRef: "foo" }