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

时间:2019-04-24 09:07:14

标签: javascript reactjs react-router gatsby

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

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

这很好。

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

我尝试过的事情:

在我的page组件上,我试图以以下形式将default value传递给this.props.location.state

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

但是,这也行不通,并返回了相同的错误。所以我的问题是,如何在状态内设置默认的dataRef属性,以便当用户直接在地址栏中输入页面地址时,页面会加载默认参数。

谢谢

1 个答案:

答案 0 :(得分:1)

c:\Users\pawel.cioch\.gitconfig

如果const { state = { dataRef: "foo" }} = this.props.location; state,这本来可以解决,但是由于它是undefined,因此仍然是null。你尝试过类似的东西吗?

null