Javascript 在GatsbyJS中,当向链接页面传递道具时,如何设置defaultProp?

Javascript 在GatsbyJS中,当向链接页面传递道具时,如何设置defaultProp?,javascript,Javascript,我遇到类型错误:当“链接页面”刷新(f5)或页面作为直接流量访问时,无法读取null属性“serviceCategory” 我试过设置默认道具,但没有触发 以下是我当前的设置: <Link to="/locations" state={{ serviceCategory: "FILTER", }} > defaultProps在盖茨比的文档中找不到,所以我正在考虑另一种解决方案。在这种情况下,defaultProps将不起

我遇到
类型错误:当“链接页面”刷新(f5)或页面作为直接流量访问时,无法读取null属性“serviceCategory”

我试过设置默认道具,但没有触发

以下是我当前的设置:

<Link
  to="/locations"
  state={{
    serviceCategory: "FILTER",
  }}
>

defaultProps
在盖茨比的文档中找不到,所以我正在考虑另一种解决方案。

在这种情况下,
defaultProps
将不起作用,因为盖茨比在内部使用
@reach/router
props。location
值被它覆盖

您可以在
defaultProps
中使用不同的变量名,也可以为state使用默认值

const state = location.state || { serviceCategory: 'ALL' }
注意

 const { state = {serviceCategory:'ALL'} } = location
无法工作,因为分解结构中的默认初始值设定项仅适用于
未定义的
值,而不适用于
null
值。在这种情况下,您的值为null

 const { state = {serviceCategory:'ALL'} } = location