前提・実現したいこと
reactをtodoアプリを作りながら学んでいたのですが、以下のコードを実行してaddボタンを押すとaddメソッドが呼ばれるようになっていると思ったのですが、ボタンを押しても何も起きなかったので、console.logを入れてみたところ表示されませんでした。addが呼ばれていないのでしょうか?なにが原因なのでしょうか?
該当のソースコード
javascript
1import React from 'react'; 2import ReactDOM from 'react-dom'; 3 4class TodoApp extends React.Component { 5 constructor() { 6 super() 7 this.state={ 8 todoList: [], 9 value: "", 10 } 11 } 12 13 onChange(e) { 14 this.setState({value: e.target.value}) 15 } 16 17 add() { 18 console.log("test"); 19 this.setState({ 20 todoList: this.state.todoList.concat(this.state.value), 21 value: "", 22 }) 23 } 24 25 render() { 26 const todoListNode = this.state.todoList.map((todo, idx) => { 27 return <li key={idx}>{todo}</li> 28 }) 29 30 return ( 31 <div> 32 <h1>TODO App</h1> 33 <div> 34 <input 35 type="text" 36 value={this.state.value} 37 onChange={e => this.onChange(e)} 38 /> 39 </div> 40 <button onClick={() => this.add}>add</button> 41 <ul> 42 {todoListNode} 43 </ul> 44 </div> 45 ); 46 } 47} 48 49ReactDOM.render( 50 <TodoApp />, 51 document.getElementById('root') 52);
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/27 02:26
2020/05/27 02:27