前提・実現したいこと
GatsbyのContentfulのスターターを使ってブログを構築しています。
上記スターターは全てクラスコンポーネントで書かれているため、関数コンポーネントに書き換えたいです。
発生している問題・該当のソースコード
単体でthisが使われている部分をどのように書き換えたらよいか分かりません。
例えばindex.jsでは下記のような形でthisが使われています。
js
1class RootIndex extends React.Component { 2 render() { 3 const siteTitle = get(this, 'props.data.site.siteMetadata.title') 4 const posts = get(this, 'props.data.allContentfulBlogPost.edges') 5 const [author] = get(this, 'props.data.allContentfulPerson.edges') 6 7 return ( 8 <Layout location={this.props.location}> 9 <div style={{ background: '#fff' }}> 10 <Helmet title={siteTitle} /> 11...
<Layout location={this.props.location}>
のように具体的なプロパティが指定されている場合は、関数コンポーネントの宣言時にpropsとしてlocationを書けば機能すると思います。
試したこと
getメソッドでthisの何を使っているか調べて、使っているプロパティを特定すれば、関数コンポーネントのpropsに明示できるかと思いgetメソッドをググったのですが、下記のような配列の操作とjQueryのメソッドの説明しか見つけられませんでした。
また、console.log(this)
で確認したところ下記の内容が表示されました。
結局thisの何を使ってgetが何をしているかが分かりませんでした。
回答1件
あなたの回答
tips
プレビュー