Javascript/React 学習中です。
index.jsxファイルのmapの行で下記エラーとなります。
「TypeError: Cannot read property 'map' of undefined」
サンプルコードからクラスを自分の勉強用にpokemonに変更して作成しています。
いくつか試してみたのですが、エラー原因が自分でわかりませんでした。
ご指摘または、確認すべき場所をアドバイス頂けますと幸いです。
index.jsxファイル
React
1const React = require('react') 2 3const myStyle = { 4color: '#ffffff', 5backgroundColor: '#000000', 6}; 7const cap = { 8 textTransform: 'capitalize', 9 color: 'silver', 10} 11 12class Index extends React.Component { 13 render(){ 14 const pokemon = this.props.pokemon; 15 return ( 16 <div style={myStyle}> 17 <h1>See All The Pokemon!</h1> 18 <ul> 19 { 20 pokemon.map((pokemon, i) => { 21 return( 22 <li style={cap}> 23 <a href={`/pokemon/${i}`}><font color="silver">{`${i}`} {pokemon.name}</font></a> 24 </li> 25 ) 26 }) 27 } 28 </ul> 29 </div> 30 ) 31 } 32} 33 34module.exports = Index;
server.jsファイル
JavaScript
1require('dotenv').config() 2 3const express = require('express'); 4const app = express(); 5const PORT = 3000; 6const Pokemon = require('./models/pokemon'); 7const mongoose = require('mongoose'); 8mongoose.connect(process.env.MONGO_URI, { 9 useNewUrlParser: true, 10 useUnifiedTopology: true, 11 useCreateIndex: true, 12 useFindAndModify: false 13}) 14mongoose.connection.once('open', () => { 15 console.log('connected to mongo') 16}) 17 18app.set('view engine', 'jsx'); 19app.engine('jsx', require('express-react-views').createEngine()) 20 21app.get('/', (req, res) => { 22 res.send('Welcome to the Pokemon App!') 23}) 24 25app.get('/pokemon', (req, res) => { 26 res.render('Index', {Pokemon: Pokemon}); 27}) 28 29app.get('/pokemon/new', (req, res) => { 30 res.render('New') 31}) 32 33app.get('/pokemon/:id', (req, res) => { 34 res.render('Show', { 35 pokemon: pokemon[req.params.id] 36 }); 37}) 38 39app.listen(PORT, () => { 40 console.log('connected', PORT) 41})
pokemon.js ファイル
JavaScript
1const { Schema, model } = require('mongoose'); 2const pokemonSchema = new Schema({ 3 name: { type: String, required: true, unique: true }, 4 img: { type: String, required: true }, 5 6}); 7const Pokemon = model('Pokemon', pokemonSchema); 8module.exports = Pokemon;
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。