Javascript Gatsby.js与<;链接>;,不管我怎么努力

Javascript Gatsby.js与<;链接>;,不管我怎么努力,javascript,reactjs,graphql,gatsby,Javascript,Reactjs,Graphql,Gatsby,我对Gatsby.js中内置的组件有一个严重的问题。我正在构建一个巨大的web项目,在我尝试使用而不是标准 链接到联系人 ) } 导出默认索引扩展 联系页面: import React from "react" const Contact = () => { return ( <div> <p>Contact page</p> </div> ) }

我对Gatsby.js中内置的
组件有一个严重的问题。我正在构建一个巨大的web项目,在我尝试使用
而不是标准

链接到联系人
)
}
导出默认索引扩展
联系页面:

import React from "react"

const Contact = () => {
    return (
        <div>
            <p>Contact page</p>
        </div>
    )
}

export default Contact;
从“React”导入React
常量联系人=()=>{
返回(
联系页面

) } 导出默认联系人;
当我使用
标记时,一切都很顺利,但在我尝试将
添加到代码中后,我立即遇到了同样愚蠢的错误。它只在浏览器中显示,而不是在VisualStudio的终端中显示

这就是错误:

Error: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined. You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.

Check the render method of `IndexPage`.
▶ 21 stack frames were collapsed.
(anonymous function)
/Users/piotr/Documents/Websites/LinkTest/LinkTest/.cache/app.js:133
  130 | const preferDefault = m => (m && m.default) || m
  131 | const Root = preferDefault(require(`./root`))
  132 | domReady(() => {
> 133 |   renderer(<Root />, rootElement, () => {
  134 |     apiRunner(`onInitialClientRender`)
  135 |   })
  136 | })

错误:元素类型无效:需要字符串(对于内置组件)或类/函数(对于复合组件),但得到:未定义。您可能忘记了从定义组件的文件中导出组件,或者您可能混淆了默认导入和命名导入。
检查'IndexPage'的渲染方法。
▶ 21个烟囱框架倒塌。
(匿名函数)
/Users/piotr/Documents/Websites/LinkTest/LinkTest/.cache/app.js:133
130 | const preferDefault=m=>(m&&m.default)| m
131 | const Root=preferDefault(要求(`./Root`))
132 | domReady(()=>{
>133 |渲染器(,根元素,()=>{
134 | apiRunner(`onInitialClientRender`)
135 |   })
136 | })

请帮助我,因为我不知道下一步应该尝试什么,我已经被这个错误困扰了两天。也许我应该更新gatsby,node.js,然后在我的电脑上做出反应?值得一试吗?:)

您需要从盖茨比导入
链接
,而不是从React:

import { Link } from "gatsby"
扩展自
@reach/router
(来自React),但它添加了特定于Gatsby的有用增强功能,因此应该作为Gatsby依赖项导入。所有
道具
都会传递到
@reach/router
链接
组件

请记住,使用内置锚定标记将刷新整个页面和整个组件(页眉、页脚等),它不会被
@reach/router
捕获


使用
Link
component时,它只会刷新所需的组件,增加更流畅的行为。

谢谢。多么愚蠢的错误。。。现在它在我的空白测试项目上工作。这很奇怪,因为在我开始提问时提到的主要web项目中,我从“gatsby.js”导入了{Link},而不是从“react”导入,不管怎样,它仍然不起作用。我会做更多的测试来找出问题所在。但是,毕竟我在解决这个问题上更进一步了。谢谢。它仍然是从“盖茨比”导入{Link},而不是从
gatsby.js
导入的。不管怎样,我很乐意帮忙。如果问题已经解决,请接受答案/投票结束问题:)当然是盖茨比没有js。我的代码是正确的,这只是这个评论中的一个错误我的支持率太低,无法支持你的评论。在获得足够的代表后,我肯定会回到这个话题上来。我只需要再加4分。;)
import { Link } from "gatsby"