質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Q&A

解決済

1回答

1835閲覧

Reactで、FontAwesomeIconが表示されない

Shmupeiii

総合スコア105

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

0グッド

0クリップ

投稿2021/12/31 03:03

前提・実現したいこと

Next.jsのポートフォリオを作っており、オブジェクトの要素をmapメソッドを使って、FontAwesomeIconを表示したい

発生している問題・エラーメッセージ

イメージ説明

オブジェクトの要素をmapメソッドを使って、「Skill」という部分で、FontAwesomeIconや文字などを表示しようとしています。
他の要素は表示できたんですが、FontAwesomeIconだけうまく表示されません。
色々解決をしようとしたんですが、上手くいきませんでした。
小さなミスで申し訳ないですが、よろしくお願いします。

github
https://github.com/takoyan33/nextjs-portfolio
表示(下にスクロールして頂けると、SKill部分のFontAwesomeIconが表示されていません。)
https://nextjs-portfolio-puce.vercel.app/

該当のソースコード

//main.js import Link from 'next/link'; import Image from 'next/image'; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { faHtml5, faCss3, faReact, faJs, faWordpress } from "@fortawesome/free-brands-svg-icons"; import { faGem } from "@fortawesome/free-regular-svg-icons"; import { faCamera} from "@fortawesome/free-solid-svg-icons"; import Portfolio from "./Portfolio.js" import Skill from "./Skill.js export default function Main() { const skills = [ { skill_name: 'HTML', skill_rank: '★★★★', skill_tag: '経験年数:1年半', skill_icon: 'faHtml5' }, { skill_name: 'CSS(SCSS)', skill_rank: '★★★★', skill_tag: '経験年数:1年半', skill_icon: 'faCss3' }, { skill_name: 'JavaScript(jQuery)', skill_rank: '★★★', skill_tag: '経験年数:1年', skill_icon: 'faJs' }, { skill_name: 'Ruby on Rails', skill_rank: '★★', skill_tag: '経験年数:4ヶ月', skill_icon: 'faGem' }, { skill_name: 'React/Next.js', skill_rank: '★★★', skill_tag: '経験年数:6ヶ月', skill_icon: 'faReact' }, { skill_name: 'WordPress', skill_rank: '★★★', skill_tag: '経験年数:1年', skill_icon: 'faWordpress' }, { skill_name: 'PhotoShop/Illustrator', skill_rank: '★★★', skill_tag: '経験年数:1年半', skill_icon: 'faCamera' }, ] return ( { skills.map((skill,index) => <Skill key={index} skill_name={skill.skill_name} skill_date={skill.skill_rank} skill_tag={skill.skill_tag} skill_icon={skill.skill_icon} /> ))}

JavaScript

1//Skill.js 2import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; 3import { faHtml5, faCss3, faReact, faJs, faWordpress } from "@fortawesome/free-brands-svg-icons"; 4import { faGem } from "@fortawesome/free-regular-svg-icons"; 5import { faCamera} from "@fortawesome/free-solid-svg-icons"; 6 7export default function Skill({skill_name, skill_rank, skill_tag, skill_icon}) { 8 9return ( 10 <div className="flx_el"> 11 <p className="tac"> 12 <FontAwesomeIcon icon={{skill_icon}} className="size" /> 13 </p> 14<p className="code_title">{skill_name} </p> 15<p className="code_title">{skill_rank }</p> 16<p className="code_title">{skill_tag}</p> 17 18</div> 19 20) 21 22 23

補足情報(FW/ツールのバージョンなど)

{ "private": true, "scripts": { "dev": "next dev", "build": "next build", "start": "next start" }, "dependencies": { "@fortawesome/fontawesome-svg-core": "^1.2.36", "@fortawesome/free-brands-svg-icons": "^5.15.4", "@fortawesome/free-regular-svg-icons": "^5.15.4", "@fortawesome/free-solid-svg-icons": "^5.15.4", "@fortawesome/react-fontawesome": "^0.1.16", "date-fns": "^2.11.1", "gray-matter": "^4.0.2", "next": "latest", "react": "17.0.2", "react-dom": "17.0.2", "remark": "^14.0.1", "remark-html": "^15.0.0" } }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

icon={{skill_icon}} と書くと、{skill_icon: アイコン名}という形のオブジェクトを渡す意味になってしまいます。

中括弧を一重にしてみましょう。

投稿2021/12/31 07:11

maisumakun

総合スコア145184

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Shmupeiii

2021/12/31 08:25

回答ありがとうございます。 今githubとvercelを更新したんですが、中括弧を一重にしても表示されません。 skill_iconの文字は表示できるんですが、上手くできないという感じです。
Shmupeiii

2021/12/31 09:34

回答ありがとうございます。 文字列ではなくimportしたオブジェクトそのものを渡すというのはどのような手順で行えば良いでしょうか。よろしくお願いします。
maisumakun

2021/12/31 09:47

skill_iconに文字列でなく、faJsのような変数をそのまま書いてください。
Shmupeiii

2021/12/31 11:47

返信して頂きありがとうございます。 変数のような書き方をしたら解決できました。 とても勉強になりました。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問