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

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

新規登録して質問してみよう
ただいま回答率
85.48%
React.js

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

Q&A

解決済

1回答

12335閲覧

TypeError: Cannot read property 'map' of undefinedというエラーが出てしまいます。

退会済みユーザー

退会済みユーザー

総合スコア0

React.js

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

0グッド

1クリップ

投稿2018/09/27 12:56

ReactでTodoリストアプリを作っているのですが、タイトルのエラーが出てしまいます。
コードは下記の通りです。

todosに内容が入っているのが原因なのかなとも思ったのですが、何度確認してもどこが間違っているのかわかりません。
よろしくお願いします。

TodoApp.js

import React from 'react'; import AddTodo from './components/AddTodo'; import List from './components/List'; export default class TodoApp extends React.Component { constructor(props) { super(props); this.state = { todos: [ { id: 0, title: 'title0'}, { id: 1, title: 'title1'}, { id: 2, title: 'title2'}, { id: 3, title: 'title3'}, ], nextId: 0, } } render() { return( <div> <h2>TodoApp</h2> <AddTodo /> <List todos={this.state.todos}/> </div> ); } }

AddTodo.js

import React from 'react'; export default class AddTodo extends React.Component { constructor(props) { super(props); } render() { const list = this.props.todos.map(todo => { return ( <li>#{todo.id} {todo.title}</li> ); }); return( <div> <h2>AddTodo</h2> <ul>{list}</ul> </div> ); } }

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

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

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

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

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

guest

回答1

0

ベストアンサー

<AddTodo /> なにも渡してませんよね?
<List todos={this.state.todos}/>渡しているのはListコンポーネントの方ですよね。

ご提示のソースから見る限りだとAddTodopropsには何も渡されてないのでthis.props.todosundefinedですよ。

投稿2018/09/27 13:06

spookybird

総合スコア1803

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

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

退会済みユーザー

退会済みユーザー

2018/09/27 13:16

すみません、コードを書くべきコンポーネントを間違えていました...。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問