问题标签 [gatsby]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
306 浏览

gatsby - 关于 Gatsby 页面加载网络请求的说明

我正在学习 Gatsby 的工作原理,并且有一个有 2 个页面的网站,两个页面都有彼此的超链接。

由于 gatsby 使用 javascript 包将网站编译为静态页面,我希望 html 链接单击事件触发对服务器的页面请求以加载second页面。但是,我没有看到这样的要求。该网站的行为类似于从页面加载的单页应用程序first。链接点击不会引起对该页面的网络页面请求second。同时,我可以看到服务器second正确响应了对页面的请求。在这种情况下,second页面被加载并且通过链接点击导航到first页面也不会引起 HTTP 请求。

  • 是设计使然吗?您能否澄清编译后的网站中实际发生的情况?

  • 如果这种单页行为是设计使然,我想知道它对搜索引擎爬虫的负面影响有多大?我认为单页应用程序对于 google bot 等的索引不是很好。

  • 另外,如果我的页面很大(比如说从降价书籍或类似书籍中呈现)怎么办?我希望单页应用程序不会非常适合一次加载所有内容。在这种情况下,盖茨比施了什么魔法?

0 投票
2 回答
3090 浏览

react-router - Gatsby Link 和 React Router Link 有什么区别?

我有一个包含 2 个组件的网站,这些组件通过 2 个不同的路径路由并相互链接。当我使用 react router Route / Link 来实现这些链接时,webpack 的最终构建中只有 1 个 html 页面和 javascript 应用程序包。当我改用 Gatsby Link 时,我看到两个 html 页面都生成了,但是每个页面的行为仍然像单页应用程序(即单击链接不会导致对服务器的请求来获取另一个页面,它是只是动态渲染)。

  • 那么,这两种页面链接技术有什么区别呢?
  • 如果 Gatsby Link 的工作方式与 react-router Link 相同,那么使用 Gatsby Link 有什么意义?
  • 在同一个网站上同时使用两者有什么影响?例如。应用程序动态部分的路由器链接和静态页面(如帮助页面)的 Gatsby 链接。

注意:这是对 Gatsby 页面加载网络请求的澄清问题的延续,但与略有不同的区域有关。

0 投票
1 回答
1581 浏览

gatsby - Gatsby 样式在生产版本中不起作用

运行npm run dev正常,但npm run build要创建构建,会在构建文件夹中production创建一个空文件。styles.csspublic

npm run serve最终得到一个没有样式的网站,因为它导入了空的styles.css.

我尝试了gatsby-plugin-postcss-sassgatsby-plugin-sass配置gatsby-config.js如下:

0 投票
3 回答
2959 浏览

markdown - Gatsby.js 的前端图像

我一直在为此苦苦挣扎:

我的前事看起来像:

我的图像与我的index.md文件位于同一文件夹中。

在我的templates/post.js文件中,我有以下行:

认为这会拉入前面列出的来源。我的 post.js 查询是:

以下是错误消息:

关于为什么这不起作用的任何想法?我对盖茨比还是新手,所以这可能是我头疼的问题。提前致谢。

0 投票
1 回答
1087 浏览

reactjs - 为什么 `this.setState` 不能仅在 IE 中工作?

我正在管理侧边栏可见性和 React-Table 加载状态,this.state如下所示。(我正在使用 React.js、Gatsby 和 semantic-ui-react 构建网站。)

这种方式应该是正常的,不会出错,因为侧边栏在单击按钮后出现,而在 Chrome 和 Firefox 中加载表格数据后,表格上的加载显示消失了。

但是,它们在 IE11、Edge 和 wine-IE 中不起作用。 我认为这this.setState不适用于 IE11、Edge 和 wine-IE。请告诉我如何让他们工作。

顺便说一句,我测试了我的网站gatsby buildfirebase deploy.

补充: 对不起。此代码是通过复制和粘贴制作的,以便在此处发布。我犯了一个错误。实际代码中没有这个。请假设 Gatsby 构建过程没有错误。

0 投票
2 回答
1131 浏览

gatsby - 为 gatsby-image 创建一个反应组件(并传入文件名和大小的道具)

我是使用 gatsby-image 的新手。

我从 gatsby/examples/using-gatsby-image/src/pages/ 获得了示例示例站点,它使用 gatsby develop 在本地工作。

接下来有两个步骤:

  1. 将 Img(和 graphql 查询)分离到另一个组件并从 blur-up.js 中调用该组件 - 为什么?因为 Img 和 graphql 很冗长,并且与我当前使用的样式组件(它是内联的)不匹配......并且它允许进行下一步(步骤 2)。

  2. 一旦它作为一个组件运行,那么父级可以向它传递一些简单的道具(文件名,大小)。这意味着任何时候你想要一个模糊的图像,你都可以把它放在父级中。

< ImageInsert fsfile="michae" maxwidth="800" />

并让组件使用(在本例中为 michae 作为图像文件名的正则表达式)处理 graphql 调用。

我的问题是我什至无法迈出第一步。

这就是我所做的

从父文件 (blur-up.js) 中删除 gatsby-image 引用并将导入添加到具有 gatsby-image (./imageinsert) 的组件

现在添加 imageinsert.js 我从一些简单的东西开始(只需添加一个 h1 行)

它有效:

我的浏览器显示这个插入:

你好盖茨比图片

到目前为止,很好,组件已插入

所以我现在需要做的就是启用 gatsby-image 标签 (Img) 和 graphql 查询。我尝试了各种选项(请参阅下面的未注释和注释)。但是当我这样做时,我得到一个空白页面(浏览器)和控制台错误,提示为空:

这是我尝试的一些变化:

没有一个对我有用。每当我输入 Img 时,我都会得到一个空白页。不幸的是,我无法访问任何其他示例。https://www.gatsbyjs.org/packages/gatsby-image/中的示例有一个拼写错误@ - 宽度是 (L) 而不是 (1)(它是 l25 而不是 125)所以我不确定是否有人有我想要做什么的例子吗?或有关如何将其放入另一个组件的建议。

0 投票
1 回答
476 浏览

reactjs - React 服务器端渲染器省略 setState 回调函数?

我正在尝试使用的第二个参数setState来传递回调函数,但看起来(据我所知)服务器端渲染器完全忽略了这个参数。我正在使用Gatsby,它利用服务器端渲染来构建基于 React 的静态站点。我的电话在一个onChange处理程序中,看起来像这样:

状态按预期更新,但从未调用回调。注意:无论我为第一个参数传递对象还是函数,同样的问题都适用。组件函数如下所示:

该更新程序的方法ReactUpdateQueue.js根据调用堆栈)如下所示:

我不完全理解 React 的构建过程,但我相信方法/文件来自源中的这个文件:

我唯一能找到定义这个函数的地方是这里

setState这看起来像正确的方法签名,但当我在代码中调试调用时,它不会出现在调用堆栈中的任何位置。这似乎不是客户端呈现的 React 组件的问题(我将尝试设置一个简单的存储库来显示此问题,但它在 CodePen 等上似乎不可复制)我知道我可以componentDidUpdate使用完成我需要做的事情,但在我的例子中回调更方便,我讨厌留下这样一个未解之谜。:)

0 投票
1 回答
145 浏览

gatsby - Gatsby 无法无错误地生成 CSS 文件

我最近买了一台升级的笔记本电脑来工作。我运行了构建环境的所有设置(安装 Node、运行 npm install、安装 gatsby)并在本地克隆了我们的 repo。

但是,当我使用 构建时gatsby build --prefix-links,我得到了“生成 CSS”,然后什么也没有。任何地方都没有错误,也没有实际的 CSS 文件。我被退回到我的命令提示符。也没有创建 /public 文件夹。

我尝试将 repo 移动到另一个文件夹,卸载并重新安装 gatsby,但仍然出现这种行为。我已经在我的旧笔记本电脑上验证了建筑物的工作原理。

我们的团队都是由一个不再有空的人设置的,我对盖茨比不熟悉。我在谷歌和这里搜索过,但我找不到其他人遇到这个问题的例子。

希望大家能以某种方式帮助我。谢谢!

0 投票
1 回答
28385 浏览

javascript - React - 单击时更改 CSS 属性(箭头功能)

我的一个 React / Gatsby 文件中有以下内容:

现在我想click()在有人按下的时候开火NavButton,然后我想让它Dropdown可见。我该怎么做?现在我已经硬编码Dropdownstyle={{visibility: "hidden", ....

我也想知道我是否正确地这样做了,在这些不同的功能中松散地拥有一切,如果有人能告诉我那会很棒!

0 投票
3 回答
7402 浏览

javascript - 反应:将 SVG 内容作为变量返回?

我目前正在这样做:

但我想做这样的事情:

为什么这不起作用?我在这里返回变量而不是实际内容吗?我原以为两者是等价的。

PS:Webpack 设置正确,我在该文件的其他地方使用导入,所以不是这样。(顺便说一下,我在这里使用 GatsbyJS)