7
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【React】改行コード\n入り文字列を改行して表示する

Last updated at Posted at 2021-09-19

はじめに

APIアクセスで返ってきたエラーメッセージに改行コード\nが入っているとき、そのままメッセージを出力しても改行が反映されていませんでした。
\n<br>に変換すればええんやろ!と思っていたら、<br>がただの文字列として出力されただけでした。
問題解決に少々詰まったのでメモとして残します。

問題点

改行コード入りのメッセージを出力しても改行が反映されない。

export const Body = () => {
  const body =
    'ユニコーンガンダム\nクスィーガンダム\nガンダムF91\nクロスボーンガンダムX1';

  return (
    <div>
      {body}
    </div>
  );
};

スクリーンショット 2021-09-19 16.27.22.png

解決策

<br>タグをJSXで認識できる形にします。
メッセージを改行コード\nで分割して配列にし、mapメソッドで配列をループすることで<br>を含んだJSX要素を返すようにします。

export const Body = () => {
  const body =
    'ユニコーンガンダム\nクスィーガンダム\nガンダムF91\nクロスボーンガンダムX1';

  return (
    <div>
      <MultiLineBody body={body} />
    </div>
  );
};

const MultiLineBody = ({ body }: { body: string }) => {
  const texts = body.split('\n').map((item, index) => {
    return (
      <React.Fragment key={index}>
        {item}
        <br />
      </React.Fragment>
    );
  });
  return <div>{texts}</div>;
};

以下のように改行コードが反映されるようになります。
スクリーンショット 2021-09-19 16.29.33.png

参考資料

7
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?