Javascript 当用户直接导航到页面时,将默认状态传递给链接
在我的GatsbyJs应用程序中,我通过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,因为
组件传递状态参数。状态中的此参数指示用户导航到页面后要显示的内容
<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中设置defaultdataRef
属性,这样当用户直接在addressbar中键入页面地址时,页面就会加载默认参数
谢谢
如果状态
是未定义的
,那么这将起作用,但由于它是空的
,它仍然是空的
。你试过这样的东西吗
const state = this.props.location.state || { dataRef: "foo" }
用户重新加载时不能传递状态,可以使用我所做的查询参数。然而,解决方案要简单得多。我所做的只是使用一个三元运算符来检查状态是否存在,如果不存在,则使用默认值,否则使用状态。谢谢你在时间和支持上帮助盖茨比新手德里克,我很感激。
const state = this.props.location.state || { dataRef: "foo" }