React初心者です。
Unhandled Rejection (TypeError): tests.map is not a functionが出て改善方法が分からず先に進めません。
Rails(API) + Reactを使ってコードを書いています。
一覧ページから遷移して遷移先のURLからIDを取得してRails側でデータを取ってきています。
material-uiなどのインポートなどはコードが長くなるので省略しています。
ここの記載が原因でしょうか?
ShowTest :React.FC<UserProps> = (props) => {
改善方法があればアドバイスお願いします。
React
1type UserProps = RouteComponentProps<{ 2 id: string 3 }> 4 5interface getParams { 6 id: number 7 user_id: number 8 title: string 9 image: string 10 body: string 11} 12 13const ShowTest :React.FC<UserProps> = (props) => { 14 15 //URLからid取得 16 const initialId :number = Number(props.match.params.id) 17 const [id,setId] = useState(initialId) 18 19 const initialTests: getParams[] = [] 20 21 const [tests, setTests] = useState(initialTests) 22 23 const get = async (id:number) => { 24 const res = await getTest(id) 25 console.log(res) 26 setTests(res.data) 27 } 28 29 useEffect( () => { 30 get(id) 31 }, [setTests]) 32 33 return( 34 <> 35 { 36tests.map((test) => ( 37<Card className={classes.root} 38key={test.id} 39> 40 41<CardHeader 42avatar={ 43 <Avatar aria-label="recipe" className={classes.avatar}> 44 R 45 </Avatar> 46} 47title={test.title} 48/> 49{/* <CardMedia 50className={classes.media} 51image="/static/images/cards/paella.jpg" 52title="Paella dish" 53/> */} 54<CardContent> 55{test.body} 56</CardContent> 57</Card> 58)) 59} 60</> 61 ) 62}
回答1件
あなたの回答
tips
プレビュー