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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

React.js

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

Q&A

解決済

1回答

847閲覧

React Queryで取得したデータをmapメソッドでブラウザに表示したい

mahimiya

総合スコア32

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

React.js

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

0グッド

0クリップ

投稿2021/08/17 09:22

前提・実現したいこと

PHP(Laravel)とJS(React)で簡単なSPA開発を行なっています
そこで、react-queryでデータを取得して、mapメソッドでブラウザに取得したデータを表示したいのですがうまくいきません、、、
どこが問題なのかを伺いたく、質問させていただきました。

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

エラーは出ていないが、取得したデータがブラウザに反映されない

該当のソースコード

JS

1import React, {useEffect, useState} from "react"; 2import axios from "axios"; 3import { useQuery } from "react-query"; 4 5const TaskPage = () => { 6 const {data:tasks, status} = useQuery('tasks', async () => { 7 const {data} = await axios.get('api/tasks'); 8 console.log(data) 9 return data 10 }) 11 12 if (status === 'loading') { 13 return <div className='loader' /> 14 } else if (status === 'error') { 15 return <div className='align-center'>データの読み込みに失敗しました</div> 16 } else if(!tasks || tasks.length <= 0){ 17 return <div className="align-center">登録されたタスクはありません</div> 18 } 19 20 return ( 21 <> 22 <form className="input-form"> 23 <div className="inner"> 24 <input type="text" className="input" placeholder="TODOを入力してください。" defaultValue="" /> 25 <button className="btn is-primary">追加</button> 26 </div> 27 </form> 28 <div className="inner"> 29 <ul className="task-list"> 30 {tasks.map(task => { 31 <li key={task.id}> 32 <label className="checkbox-label"> 33 <input type="checkbox" className="checkbox-input" /> 34 </label> 35 <div><span>{ task.title }</span></div> 36 <button className="btn is-delete">削除</button> 37 </li> 38 })} 39 <li> 40 <label className="checkbox-label"> 41 <input type="checkbox" className="checkbox-input" /> 42 </label> 43 <form><input type="text" className="input" defaultValue="編集中のTODO" /></form> 44 <button className="btn">更新</button> 45 </li> 46 <li className="done"> 47 <label className="checkbox-label"> 48 <input type="checkbox" className="checkbox-input" /> 49 </label> 50 <div><span>実行したTODO</span></div> 51 <button className="btn is-delete">削除</button> 52 </li> 53 <li> 54 <label className="checkbox-label"> 55 <input type="checkbox" className="checkbox-input" /> 56 </label> 57 <div><span>ゴミ捨て</span></div> 58 <button className="btn is-delete">削除</button> 59 </li> 60 <li> 61 <label className="checkbox-label"> 62 <input type="checkbox" className="checkbox-input" /> 63 </label> 64 <div><span>掃除</span></div> 65 <button className="btn is-delete">削除</button> 66 </li> 67 </ul> 68 </div> 69 </> 70 ) 71} 72 73export default TaskPage;

試したこと

react-queryに関して自分なりに検索をかけた。
mapメソッド、react-queryに記述間違いがないか確かめた。
データが取得できているか確かめた。

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

React 17.0
PHP 7.3
Laravel 8.54

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

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

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

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

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

guest

回答1

0

ベストアンサー

jsx

1 {tasks.map(task => { 2 <li key={task.id}> 3 <label className="checkbox-label"> 4 <input type="checkbox" className="checkbox-input" /> 5 </label> 6 <div><span>{ task.title }</span></div> 7 <button className="btn is-delete">削除</button> 8 </li> 9 })}

task => のあとのカッコは丸括弧にしてください。中括弧のままだと、「JSXを作るだけ作って値を捨てる」という意味になってしまいます。

投稿2021/08/17 09:26

maisumakun

総合スコア146018

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問