明らかに、これは簡単な作業ではありません。デフォルトでhtml.js
テンプレートファイルの変更がヘッドメタタグとコンテンツだけです。Gatsby.jsのbodyタグに動的クラスを追加するには?
メタタグはヘルメットコンポーネント({head.title.toComponent()}
および{head.meta.toComponent()}
)によって処理され、テンプレート内のHTML変更はReactによって管理されます。 (<div id="react-mount" dangerouslySetInnerHTML={{ __html: this.props.body }} />
)
しかし、bodyタグはReactの範囲外です。そのため、ページ間を移動するときにオンザフライで変更する方法がわかりません。それはまさに私が必要とするものですが、私はそれぞれのページに異なるボディの背景を適用したいのです。
私はこの問題をexports.onRouteUpdate
のgatsby-browser.js
で解決できると知っていますが、ブラウザでJSが無効になっていてもクラスが存在するようにしたいと思います。私がbundle.js
ファイルなしでエクスポートしても静的サイトHTMLを生成しても、そこにあることを意味します。
ニース1を!ありがとう、それは私が探していたものです。 –