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

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

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

React Nativeは、ネイティブモバイルアプリ(iOS/Android)を作成できるJavaScriptフレームワークです。Reactと同じ設計のため、宣言的なコンポーネントでリッチなUIを開発することが可能です。

Q&A

0回答

1532閲覧

react native + expo で todoapp を作ってるのですが、新しいtodoを追加する処理で「undefined is not an object」というエラーが出てしまいます

N---------

総合スコア46

React Native

React Nativeは、ネイティブモバイルアプリ(iOS/Android)を作成できるJavaScriptフレームワークです。Reactと同じ設計のため、宣言的なコンポーネントでリッチなUIを開発することが可能です。

0グッド

0クリップ

投稿2019/03/27 22:07

行き詰っております。どなたかご教授くださると幸いです。

コード↓

javascript

1import React, { Component } from 'react'; 2import { 3 Platform, 4 StatusBar, 5 StyleSheet, 6 View, 7 Text, 8 ScrollView, 9 FlatList, 10 KeyboardAvoidingView, 11} from 'react-native'; 12import { 13 Input, 14 Button, 15} from'react-native-elements' 16import Icon from 'react-native-vector-icons/Feather' 17 18export default class App extends Component { 19 constructor(props) { 20 super(props) 21 this.state= { 22 todo: [], 23 currentIndex: 0, 24 inputText: "", 25 } 26 } 27 28 onAddItem(){ 29 let title = this.state.inputText 30 if(title == ""){ 31 return 32 } 33 let index = this.state.currentIndex + 1 34 let newTodo = {title: title, index: index, done: false} 35 let todo = [...this.state.todo, newTodo] 36 this.setState({ 37 todo: todo, 38 currentIndex: index, 39 inputText: "", 40 }) 41 42 } 43 44 render() { 45 return( 46 <KeyboardAvoidingView style={styles.container} behavior="padding"> 47 48 {/* todo list */} 49 <ScrollView style={styles.todolist}> 50 <FlatList 51 data={this.state.todo} 52 renderItem={({item}) => <Text>{item.title}</Text>} 53 keyExtractor={(item) => item.index.toString()} 54 /> 55 </ScrollView> 56 57 {/* 新しい todo を追加するところ */} 58 <View style={styles.input}> 59 {/* text 入力欄 */} 60 <Input 61 containerStyle={styles.inputText} 62 onChange={(text) => this.setState({inputText: text.text})} 63 value={this.state.inputText} 64 /> 65 {/* 追加ボタン */} 66 <Button 67 icon={ 68 <Icon 69 name='plus' 70 size={30} 71 color='white' 72 /> 73 } 74 title="" 75 onPress={this.onAddItem} 76 buttonStyle={styles.inputButton} 77 /> 78 </View> 79 80 </KeyboardAvoidingView> 81 ) 82 } 83} 84 85const styles = StyleSheet.create({ 86 container: { 87 flex: 1, 88 paddingTop: Platform.OS == 'ios' ? 20 : StatusBar.currentHeight, 89 }, 90 91 todolist: { 92 flex: 1, 93 }, 94 input: { 95 height: 50, 96 flexDirection: 'row', 97 paddingRight: 10, 98 }, 99 100 inputText: { 101 paddingLeft: 10, 102 paddingRight: 10, 103 flex: 1, 104 }, 105 inputButton: { 106 width: 48, 107 height: 48, 108 borderWidth: 0, 109 borderColor: 'yellowgreen', 110 borderRadius: 48, 111 backgroundColor: 'green' 112 } 113})

出てきてしまったエラー↓

javascript

1undefined is not an object (evaluating 'this.state.inputText') 2onAddItem 3 C:\Users\nkawa\Documents\Expo\TodoApp\App.js:33:27 4touchableHandlePress 5 C:\Users\nkawa\Documents\Expo\TodoApp\node_modules\react-native\Libraries\Components\Touchable\TouchableNativeFeedback.android.js:187:45 6_performSideEffectsForTransition 7 C:\Users\nkawa\Documents\Expo\TodoApp\node_modules\react-native\Libraries\Components\Touchable\Touchable.js:803:34 8_receiveSignal 9 C:\Users\nkawa\Documents\Expo\TodoApp\node_modules\react-native\Libraries\Components\Touchable\Touchable.js:717:44 10touchableHandleResponderRelease 11 C:\Users\nkawa\Documents\Expo\TodoApp\node_modules\react-native\Libraries\Components\Touchable\Touchable.js:435:24 12invokeGuardedCallbackImpl 13 C:\Users\nkawa\Documents\Expo\TodoApp\node_modules\react-native\Libraries\Renderer\oss\ReactNativeRenderer-dev.js:92:15 14invokeGuardedCallback 15 C:\Users\nkawa\Documents\Expo\TodoApp\node_modules\react-native\Libraries\Renderer\oss\ReactNativeRenderer-dev.js:306:36 16invokeGuardedCallbackAndCatchFirstError 17 C:\Users\nkawa\Documents\Expo\TodoApp\node_modules\react-native\Libraries\Renderer\oss\ReactNativeRenderer-dev.js:330:30 18executeDispatch 19 C:\Users\nkawa\Documents\Expo\TodoApp\node_modules\react-native\Libraries\Renderer\oss\ReactNativeRenderer-dev.js:699:42 20executeDispatchesInOrder 21 C:\Users\nkawa\Documents\Expo\TodoApp\node_modules\react-native\Libraries\Renderer\oss\ReactNativeRenderer-dev.js:726:20 22executeDispatchesAndRelease 23 C:\Users\nkawa\Documents\Expo\TodoApp\node_modules\react-native\Libraries\Renderer\oss\ReactNativeRenderer-dev.js:884:29 24forEachAccumulated 25 C:\Users\nkawa\Documents\Expo\TodoApp\node_modules\react-native\Libraries\Renderer\oss\ReactNativeRenderer-dev.js:863:16 26runEventsInBatch 27 C:\Users\nkawa\Documents\Expo\TodoApp\node_modules\react-native\Libraries\Renderer\oss\ReactNativeRenderer-dev.js:1050:6 28runExtractedEventsInBatch 29 C:\Users\nkawa\Documents\Expo\TodoApp\node_modules\react-native\Libraries\Renderer\oss\ReactNativeRenderer-dev.js:1075:19 30<unknown> 31 C:\Users\nkawa\Documents\Expo\TodoApp\node_modules\react-native\Libraries\Renderer\oss\ReactNativeRenderer-dev.js:2713:6 32batchedUpdates$1 33 C:\Users\nkawa\Documents\Expo\TodoApp\node_modules\react-native\Libraries\Renderer\oss\ReactNativeRenderer-dev.js:15311:14 34batchedUpdates 35 C:\Users\nkawa\Documents\Expo\TodoApp\node_modules\react-native\Libraries\Renderer\oss\ReactNativeRenderer-dev.js:2616:31 36_receiveRootNodeIDEvent 37 C:\Users\nkawa\Documents\Expo\TodoApp\node_modules\react-native\Libraries\Renderer\oss\ReactNativeRenderer-dev.js:2711:17 38receiveTouches 39 C:\Users\nkawa\Documents\Expo\TodoApp\node_modules\react-native\Libraries\Renderer\oss\ReactNativeRenderer-dev.js:2787:28 40__callFunction 41 C:\Users\nkawa\Documents\Expo\TodoApp\node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:349:47 42<unknown> 43 C:\Users\nkawa\Documents\Expo\TodoApp\node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:106:26 44__guard 45 C:\Users\nkawa\Documents\Expo\TodoApp\node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:297:10 46callFunctionReturnFlushedQueue 47 C:\Users\nkawa\Documents\Expo\TodoApp\node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:105:17 48

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問