前提・実現したいこと
現在はSampleファイルにSampleクラス、Inputクラス、Submitクラス、Listクラス、と複数のクラスが存在しています。
以下のようなファイル構成にしたいです。
- Sampleファイル
- atomsフォルダ
-- Inputファイル
-- Submitファイル
-- Listファイル
該当のソースコード
JavaScript
1import React, {Component} from 'react'; 2 3export default class Sample extends Component 4{ 5 render() 6 { 7 return(<div> 8 <Input /> 9 </div>); 10 } 11} 12 13class Input extends Component 14{ 15 constructor(props) 16 { 17 super(props); 18 this.handleChange = this.handleChange.bind(this); 19 this.state = { 20 value: '' 21 }; 22 } 23 24 handleChange(event) 25 { 26 this.setState({ 27 value: event.target.value, 28 }); 29 } 30 31 render() 32 { 33 return( 34 <div> 35 <input type="text" value={this.state.value} onChange={this.handleChange} /> 36 <Submit value={this.state.value} /> 37 </div> 38 ); 39 } 40} 41 42class Submit extends Component 43{ 44 constructor(props) 45 { 46 super(props); 47 this.handleClick = this.handleClick.bind(this); 48 this.state = { 49 todos: [] 50 }; 51 } 52 53 handleClick(value) 54 { 55 this.setState({ 56 todos: [...this.state.todos, value] 57 }); 58 } 59 60 render() 61 { 62 return( 63 <> 64 <input type="submit" value="Submit" onClick={() => this.handleClick(this.props.value)} /> 65 <List todos={this.state.todos} /> 66 </> 67 ); 68 } 69} 70 71class List extends Component 72{ 73 render() 74 { 75 return( 76 <div> 77 <h3>ToDo</h3> 78 <ul> 79 {this.props.todos.map((todo) => <li key={Math.random()}>{todo}</li>)} 80 </ul> 81 </div> 82 ) 83 } 84}
発生している問題・エラーメッセージ
以下のように分割してみました。
importする為に'export default'を指定する必要があり、更に、例えばInputクラスではSubmitをimportする必要があります。
概要のソースコードに載っているコードをそっくりそのまま分割したいです。
JavaScript
1import React, {Component} from 'react'; 2import Submit from './Submit'; 3 4export default class Input extends Component 5{ 6 constructor(props) 7 { 8 super(props); 9 this.handleChange = this.handleChange.bind(this); 10 this.state = { 11 value: '' 12 }; 13 } 14 15 handleChange(event) 16 { 17 this.setState({ 18 value: event.target.value, 19 }); 20 } 21 22 render() 23 { 24 return( 25 <div> 26 <input type="text" value={this.state.value} onChange={this.handleChange} /> 27 <Submit value={this.state.value} /> 28 </div> 29 ); 30 } 31} 32
補足情報
React:Ver.16.12.0
回答1件
あなたの回答
tips
プレビュー