反应路由器传递道具处于未定义状态

时间:2020-10-01 08:16:43

标签: reactjs react-router-dom

我试图使用Link标签通过状态将对象作为道具传递给组件。我正确通过了道具并将其记录在组件中。它已正确打印。但是,当我刷新该组件中的屏幕时,通过的prop是不确定的。

我用这些代码来传递道具。

    <Link
      to={{
        pathname: '/url',
        state: {
          widget: value
        }
      }}>
      Link text
    </Link>

然后,导航到该组件后,我使用了以下代码。

console.log(this.props.location.state);

在第一个导航中,日志正确显示了传递的道具。然后,当我将屏幕重新加载到该组件中时,传递的prop未定义。正如我所想,它仅在我们直接导航时为我们提供值。如果重新加载屏幕,我们将无法再次访问该道具。 我的问题是,是否有其他方法可以永久获得此道具,这意味着重新加载屏幕时该道具不会消失? (此外,我不想将其作为网址传递参数)。

1 个答案:

答案 0 :(得分:0)

为onClick编写函数,如

goToThatLink = (value) => {
  const {history} = this.props
  history.replace('/url', widget)
}

调用该函数

onClick={() => this.goToThatLink(value)}