仿¥ãReactã§ã®ãã©ãŒã ã®äœ¿çšã«é¢ããè°è«ãç¶ããŸãã ååã¯ãã³ã³ããŒãã³ããšããã¹ããã£ãŒã«ãã®çžäºäœçšã®ç¹åŸŽã調ã¹ãŸããã ããã§ã¯ãä»ã®ãã©ãŒã èŠçŽ ã®æäœã«ã€ããŠèª¬æããŸãã

â
ããŒã1ïŒã³ãŒã¹ã®æŠèŠãReactãReactDOMãJSXã®äººæ°ã®çç±â
ããŒã2ïŒæ©èœã³ã³ããŒãã³ãâ
ããŒã3ïŒã³ã³ããŒãã³ããã¡ã€ã«ããããžã§ã¯ãæ§é â
ããŒã4ïŒèŠªã³ã³ããŒãã³ããšåã³ã³ããŒãã³ãâ
ããŒã5ïŒTODOã¢ããªã±ãŒã·ã§ã³ã®äœæ¥ã®éå§ãã¹ã¿ã€ãªã³ã°ã®åºæ¬â
ããŒã6ïŒã³ãŒã¹ã®äžéšã®æ©èœãJSXããã³JavaScriptã«ã€ããŠâ
ããŒã7ïŒã€ã³ã©ã€ã³ã¹ã¿ã€ã«â
ããŒã8ïŒTODOã¢ããªã±ãŒã·ã§ã³ã®ç¶ç¶çãªäœæ¥ãã³ã³ããŒãã³ãã®ããããã£ã«ç²Ÿéâ
ããŒã9ïŒã³ã³ããŒãã³ãã®ããããã£â
ããŒã10ïŒã³ã³ããŒãã³ãã®ããããã£ãšã¹ã¿ã€ã«ã®æäœã«é¢ããã¯ãŒã¯ã·ã§ããâ
ããŒã11ïŒåçããŒã¯ã¢ããçæããã³ãããé
åã¡ãœããâ
ããŒã12ïŒã¯ãŒã¯ã·ã§ãããTODOã¢ããªã±ãŒã·ã§ã³ã®äœæ¥ã®ç¬¬3段éâ
ããŒã13ïŒã¯ã©ã¹ããŒã¹ã®ã³ã³ããŒãã³ãâ
ããŒã14ïŒã¯ã©ã¹ããŒã¹ã®ã³ã³ããŒãã³ããã³ã³ããŒãã³ãã®ã¹ããŒã¿ã¹ã«é¢ããã¯ãŒã¯ã·ã§ããâ
ããŒã15ïŒã³ã³ããŒãã³ããã«ã¹ã¯ãŒã¯ã·ã§ããâ
ããŒã16ïŒTODOã¢ããªã±ãŒã·ã§ã³ã®äœæ¥ã®ç¬¬4段éãã€ãã³ãåŠçâ
ããŒã17ïŒTODOã¢ããªã±ãŒã·ã§ã³ã®äœæ¥ã®ç¬¬5段éãã³ã³ããŒãã³ãã®ç¶æ
ã®å€æŽâ
ããŒã18ïŒTODOã¢ããªã±ãŒã·ã§ã³ã®äœæ¥ã®6çªç®ã®æ®µéâ
ããŒã19ïŒã³ã³ããŒãã³ãã®ã©ã€ããµã€ã¯ã«ã¡ãœããããŒã20ïŒæ¡ä»¶ä»ãã¬ã³ããªã³ã°ã®æåã®ã¬ãã¹ã³â
ããŒã21ïŒæ¡ä»¶ä»ãã¬ã³ããªã³ã°ã«é¢ãã2çªç®ã®ã¬ãã¹ã³ãšã¯ãŒã¯ã·ã§ããâ
ããŒã22ïŒTODOã¢ããªã±ãŒã·ã§ã³ã®äœæ¥ã®ç¬¬7段éãå€éšãœãŒã¹ããã®ããŒã¿ã®ããŠã³ããŒãâ
ããŒã23ïŒãã©ãŒã ã®æäœã«é¢ããæåã®ã¬ãã¹ã³â
ããŒã24ïŒ2çªç®ã®ãã©ãŒã ã¬ãã¹ã³â
ããŒã25ïŒãã©ãŒã ã®æäœã«é¢ããã¯ãŒã¯ã·ã§ããâ
ããŒã26ïŒã¢ããªã±ãŒã·ã§ã³ã¢ãŒããã¯ãã£ãã³ã³ãã/ã³ã³ããŒãã³ããã¿ãŒã³â
ããŒã27ïŒã³ãŒã¹ãããžã§ã¯ãã¬ãã¹ã³42.ãã©ãŒã ã®äœ¿çšãããŒã2
â
ãªãªãžãã«ãã®ã¬ãã¹ã³ã§ã¯ãè€æ°è¡ããã¹ããå
¥åããããã®ãã£ãŒã«ãããã©ã°ãã©ââãžãªãã¿ã³ïŒãã©ãžãªãã¿ã³ããšãåŒã°ããŸãïŒãããã³ãªã¹ãããã¯ã¹ã«ã€ããŠèª¬æããŸãã ãããŸã§ãéåžžã®ããã¹ãå
¥åãã£ãŒã«ãã§ã®ã¿äœæ¥ããããšãæ€èšããŠããŸããã
以äžã¯ã仿¥ã®å®éšãéå§ãã
App
ã³ã³ããŒãã³ãã®ã³ãŒãã§ãã
import React, {Component} from "react" class App extends Component { constructor() { super() this.state = { firstName: "", lastName: "" } this.handleChange = this.handleChange.bind(this) } handleChange(event) { const {name, value} = event.target this.setState({ [name]: value }) } render() { return ( <form> <input type="text" value={this.state.firstName} name="firstName" placeholder="First Name" onChange={this.handleChange} /> <br /> <input type="text" value={this.state.lastName} name="lastName" placeholder="Last Name" onChange={this.handleChange} /> { /** * : * * <textarea /> * <input type="checkbox" /> * <input type="radio" /> * <select> <option> */ } <h1>{this.state.firstName} {this.state.lastName}</h1> </form> ) } } export default App
ããã¯ãäœæ¥ã®ãã®æ®µéã§ãã©ãŠã¶ã«è¡šç€ºãããã¢ããªã±ãŒã·ã§ã³ããŒãžã®å€èгã§ãã
ãã©ãŠã¶ã®ã¢ããªã±ãŒã·ã§ã³ããŒãžãã©ãŒã ã«ã¯éåžžãçãè¡ãå
¥åããããã£ãŒã«ãã ãã§ãªãã ãã©ãŒã ã«ä»ã®èŠçŽ ãè£
åããå ŽåãReactã§ããããæäœããã®ã¯å°ãè€éã§ãããããã«ã€ããŠç¹å¥ãªããšã¯äœããããŸããã
äžèšã®ã³ãŒãã«ã¯ãã³ã¡ã³ãã¢ãŠãããããã©ã°ã¡ã³ããããããããã説æããèŠçŽ ããªã¹ãããŠããŸãã è€æ°è¡ããã¹ããå
¥åãããã£ãŒã«ã
textarea
èŠçŽ ããå§ããŸãããã 圌ãšä»äºãããæ¹æ³ãçè§£ããã®ãããããæãç°¡åã§ãããã éåžžã®HTMLãã©ãŒã ãäœæãããšãã«ãã®èŠçŽ ã䜿çšããŠããå Žåãããã¯
input
èŠçŽ ã®å Žåã®ããã«èªå·±çµäºã¿ã°ã§ã¯ãªãããšãããããŸãã éééšåããããŸãã
ã³ã¡ã³ãã®çŽåŸã«æ¬¡ã®ã³ãŒããæ¿å
¥ããŠããã®èŠçŽ ããã©ãŒã ã«è¿œå ããŸãã
<br /> <textarea></textarea>
ã¢ããªã±ãŒã·ã§ã³ããŒãžãèŠããšãè€æ°è¡ããã¹ããå
¥åãããã£ãŒã«ããã©ã®ããã«è¡šç€ºãããŠãããã確èªã§ããŸãã
ããŒãžã«ããã¹ããå
¥åããããã®ãã£ãŒã«ãã芧ã®ãšããããã®ãã£ãŒã«ãã¯éåžžã®ãã£ãŒã«ããããããã«é«ãããŠãŒã¶ãŒã¯å³äžã®ããŒã«ãŒã䜿çšããŠãµã€ãºã倿Žã§ããŸãã
rows
ãš
rows
ã®å±æ§ã®ãããã§ããã®èŠçŽ ã説æãããšãã«ããã®æ¬¡å
ã瀺ãããšãã§ããŸãã éåžžã®HTMLã§ã¯ããã®ãã£ãŒã«ãã衚瀺ããåŸã«ããã¹ãã衚瀺ãããå Žåã¯ãèŠçŽ ã®éå§ã¿ã°ãšçµäºã¿ã°ã®éã«ç®çã®ããã¹ããå
¥åããããšã§ãããè¡ããŸãã Reactã§ã¯ããã®ãããªèŠçŽ ã®æäœã¯ãåå説æãã
input
èŠçŽ ã®æäœãšå¯èœãªéã䌌ãŠããŸãã ã€ãŸããReactã§ã¯ã
textarea
ã¿ã°ã¯èªå·±çµäºããŸãã ã€ãŸããããŒãžã«ãã£ãŒã«ãã衚瀺ããããã®ã³ãŒãã¯æ¬¡ã®ããã«å€æŽã§ããŸãã
<textarea />
ããã«ããã®ã¿ã°ã§
value
屿§ã䜿çšã§ããŸããããã«ãéåžžã®ããã¹ããã£ãŒã«ãã®åã屿§ã䜿çšãã
value
ãšãŸã£ããåãæ¹æ³ã§äœæ¥ããŸãã ãã®ãããããŸããŸãªèŠçŽ ã§ã®äœæ¥ã®åäžæ§ãéæãããããã«ããã®ãããªãã£ãŒã«ãã«é¢é£ä»ããããç¶æ
ããããã£ãæŽæ°ããããšã«ããããã£ãŒã«ãã®ã³ã³ãã³ããæŽæ°ããããšã容æã«ãªããŸãã ãã£ãŒã«ãã³ãŒãã®ç¶æ
ãæ¬¡ã®ãã©ãŒã ã«ç§»ããŠã¿ãŸãããã
<textarea value={"Some default value"}/>
ããã«ãããæå®ãããããã¹ããããŒãžã«è¡šç€ºããããšãã«ãã£ãŒã«ãã«è¡šç€ºãããŸãã
ãã£ãŒã«ãã«è¡šç€ºãããããã¹ãè€æ°è¡ã®ããã¹ããå
¥åãããã£ãŒã«ãã®æäœã«æ»ããŸãããããã§ã¯ãã§ãã¯ããã¯ã¹ã«ã€ããŠèª¬æããŸãã ãã§ãã¯ããã¯ã¹ã¯ãã¿ã€ãã
checkbox
ã§ãã
input
ã³ã³ãããŒã«ã§ãã 圌ã®èª¬æã¯æ¬¡ã®ãšããã§ãã
<input type="checkbox" />
ãã®ããŒã¯ã¢ããã§èª¬æãããŠãããã©ã°ãããŒãžäžã§ã©ã®ããã«èŠããããæ¬¡ã«ç€ºããŸãã
ãã§ãã¯ããã¯ã¹ãã®ã³ã³ãããŒã«ã®äž»ãªæ©èœã¯ã
value
屿§ãæäœãããšãã«äœ¿çšãããªããšããäºå®ã§ãã ãŠãŒã¶ãŒã«ããã€ãã®2ã€ã®ãªãã·ã§ã³ã®éžæè¢ãæäŸããããã«äœ¿çšãããŸãã1ã€ã¯ãã§ãã¯ããã¯ã¹ã«å¯Ÿå¿ãããã1ã€ã¯ãã§ãã¯ãããŠããªããªãã·ã§ã³ã«å¯Ÿå¿ããŸãã ãã§ãã¯ããã¯ã¹ããã§ãã¯ãããŠãããã©ããã远跡ããããã«ã
checked
屿§ã䜿çšãããŸããããã¯è«çå€ã§èšè¿°ãããŸãã ãã®çµæããã©ã°ã¯éåžžãç¶æ
ã«æ ŒçŽãããŠããè«çããããã£ã«å¯Ÿå¿ããŸãã
ã³ã³ããŒãã³ãã®ç¶æ
ãæ¬¡ã®åœ¢åŒã«ããŸãããã
this.state = { firstName: "", lastName: "", isFriendly: true }
ãã©ã°ã®èª¬æã³ãŒãã¯æ¬¡ã®ããã«å€æŽãããŸãã
<input type="checkbox" checked={this.state.isFriendly} />
ãã®åŸãéžæãããã§ãã¯ããã¯ã¹ãããŒãžã«è¡šç€ºãããŸãã
ãã§ãã¯ããã¯ã¹ç¢ºãã«ãä»ã§ã¯åœŒã¯åœŒã®ã¯ãªãã¯ã«ã¯åå¿ããŸããã å®éã«ã¯ããã©ã°ã¯ç¶æ
ã«æ ŒçŽãããŠãã察å¿ãã倿°ã«é¢é£ä»ããããŠããããããã®å ŽåãReactã§ç¶æ
ã確èªãã
isFriendly
ããããã£
isFriendly
true
ã«èšå®ãããŠããããšã確èªããããšã§ããããåé€ã§ããŸããã åæã«ããã£ãŒã«ãã倿Žããã¡ã«ããºã ïŒ
onChange
ã€ãã³ã
onChange
ïŒãæäŸããŠããããèªã¿åãå°çšç¶æ
ã§è¡šç€ºãããããšã瀺ãèŠåãã³ã³ãœãŒã«ã«è¡šç€ºãããŸãã
ã³ã³ãœãŒã«èŠåãã©ã°ãæäœããããã®ç¹å¥ãªã¡ãœãããèšè¿°ããããšãã§ããŸãããã³ã³ããŒãã³ãã®ã³ãŒãã«ã¯ãã§ã«
handleChange()
ã¡ãœããããããŸãã çŸåšã§ã¯ãããã¹ããã£ãŒã«ãã®æäœã«äœ¿çšãããŠããŸãã ãã®ãã©ã°ã䜿çšããŠãã©ã°ãæäœããæ¹æ³ã«ã€ããŠèããŸãã ãããè¡ãã«ã¯ãæåã«äžèšã®ã¡ãœããããã©ã°ã®
onChange
ã€ãã³ã
onChange
å²ãåœãŠããã©ã°ã«é¢é£ããç¶æ
ããããã£ã®ååã«å¯Ÿå¿ããååããã©ã°ã«å²ãåœãŠãŸãã ããã«ãã©ãã«ã¿ã°ã䜿çšããŠãã©ã°ã«çœ²åããŸãã
<label> <input type="checkbox" name="isFriendly" checked={this.state.isFriendly} onChange={this.handleChange} /> Is friendly? </label>
以äžã«ã³ãŒãã瀺ãããŠãã
handleChange()
ã¡ãœããã§ãããã¹ããã£ãŒã«ããæäœãããšãã«ãèŠçŽ ã®
name
ïŒ
name
ïŒãšãã®ã³ã³ãã³ãïŒ
value
ïŒãèŠã€ããåŸãç¹å®ã®ååã®ãã£ãŒã«ããæžã蟌ãããšã§ç¶æ
ãæŽæ°ããŸãããã®
value
屿§ïŒ
handleChange(event) { const {name, value} = event.target this.setState({ [name]: value }) }
ããã§ã
value
屿§ãæããªããã©ã°ãåŠçããæ¹æ³ãçè§£ããå¿
èŠããããŸãã ããã«ã¯ã
checked
屿§ã®ã¿ãããã
true
ãŸãã¯
false
å€ã®ã¿ãåãå
¥ããããšãã§ããŸãã ãã®çµæã
handleChange()
ã¡ãœããã䜿çšããŠãã©ã°ãæäœããã«ã¯ããã®ãã³ãã©ãŒãåŒã³åºãããèŠçŽ ããã©ã°ã§ãããã©ããã確èªããå¿
èŠããããŸãã ãã®ãã§ãã¯ãå®è¡ããããã«ããã©ã°ã衚ã
input
èŠçŽ ã®ã¿ã€ãïŒ
type
ïŒã
checkbox
èšå®ãããŠããããšãæãåºããŠãã ããã ãã®å€ã確èªããã«ã¯ã
event.target
èŠçŽ ã®
type
ããããã£ãåç
§ã§ããŸãã æ¬¡ã®æ§æã䜿çšããŠããã®ããããã£ãš
event.target
ãã
checked
ããããããã£ãæœåºããŸãã
const {name, value, type, checked} = event.target
ããã§ã
type
宿°ã®å€ã確èªããã€ãã³ããã³ãã©ãŒãåŒã³åºãããèŠçŽ ããã©ã°ã§ãããã©ããã確èªã§ããŸãã ãã®å Žåã
checked
宿°ã«ããããšã倿ããç¶æ
ã«æžã蟌ã¿
checked
ã ããã¹ããã£ãŒã«ãã®æäœãæ
åœããã³ãŒããä¿åããããšãå¿ããªãã§ãã ããã ãã®çµæã
handleChange()
ã³ãŒã
handleChange()
次ã®åœ¢åŒ
handleChange()
åããŸãã
handleChange(event) { const {name, value, type, checked} = event.target type === "checkbox" ? this.setState({ [name]: checked }) : this.setState({ [name]: value }) }
ãã®åŸããã©ã°ã®åäœã確èªããŸãã
ãã©ã°ã®åäœã確èªããŸãã芧ã®ãšããããããåé€ããŠã€ã³ã¹ããŒã«ã§ããŸãã åæã«ãããã¹ããã£ãŒã«ãã®äœæ¥ã¯äžæãããŸããã ãã§ãã¯ããã¯ã¹ã«é¢ããéç¥ã¯ã³ã³ãœãŒã«ããæ¶ããŸããããè€æ°è¡ããã¹ããå
¥åãããã£ãŒã«ãã«é¢ããéç¥ãããã«è¡šç€ºãããŸãã ãã®ãã£ãŒã«ãã説æããã³ãŒããæ¬¡ã®ããã«å€æŽããŸãã
<textarea value={"Some default value"} onChange={this.handleChange} />
ããã«ãããã³ã³ããŒãã³ãã®ããŒã«ã䜿çšããŠãã®ãã£ãŒã«ããæäœããããã®ä»ã®ã¡ã«ããºã ãå®è£
ããŸããã§ããããéç¥ãæ¶ããŸãïŒãã£ãŒã«ãã®ååãæå®ããã察å¿ããããããã£ãç¶æ
ã«è¿œå ããŸããã§ããïŒã ãããã®æ©èœã¯èªåã§å®è£
ã§ããŸãã æ¬¡ã«ãã¹ã€ããã«ã€ããŠèª¬æããŸãã
ãããã¯ã
text
ããã³
checkbox
ã¿ã€ãã®
input
èŠçŽ ã®çµã¿åãããšããŠè¡šãããšãã§ããŸãã ããã§ã®æå³ã¯ãã¹ã€ããã«
value
屿§ãš
checked
屿§ã®äž¡æ¹ããã
value
ã§ãã ãã©ãŒã ã«ããã€ãã®ã¹ã€ããã远å ãããã©ã°èšè¿°ã³ãŒãã«åºã¥ããŠã³ãŒããäœæããŸãã ããã¯æ¬¡ã®ãããªãã®ã§ãã
<label> <input type="radio" name="gender" value="male" checked={this.state.isFriendly} onChange={this.handleChange} /> Male </label> <br /> <label> <input type="radio" name="gender" value="female" checked={this.state.isFriendly} onChange={this.handleChange} /> Female </label>
ãã©ã°èšè¿°ã³ãŒãã«åºã¥ããŠãã®ã³ãŒããäœæããŸãããããŸã äœãç·šéããŠããŸããã ãããã£ãŠãã¹ã€ããã¯å¥åŠãªåäœãããŸãã ç¹ã«ããã§ãã¯ããã¯ã¹ããªãã«ãªã£ãŠããå Žåãäž¡æ¹ã®ã¹ã€ããã¯ããªããç¶æ
ã«ããããã§ãã¯ããã¯ã¹ãéžæãããšãã©ã¡ãããããªã³ãã«ãªããŸãã æ¢åã®èŠçŽ ã®ã³ãŒãã«åºã¥ããŠäœæãããèŠçŽ ã³ãŒããæ
éã«åŠçããããšã«ããããã®ãããªãšã©ãŒãé²ãããšãã§ããŸãã ä»ãããä¿®æ£ããŸãã
ãããã®2ã€ã®èŠçŽ ã¯åãåå-
gender
ããšã«æ³šæããŠãã ããã åãååã®ã¹ã€ãããã°ã«ãŒãã圢æããŸãã ãã®ãããªã°ã«ãŒãã«å«ãŸããã¹ã€ããã¯1ã€ã ãéžæã§ããŸãã
ã¹ã€ãããæ§æãããšãã«ãããã€ãã®ç¶æ
ããããã£ã
true
å Žåã
checked
å€ã
true
èšå®ãããŠããããšãåã«ç€ºãããšã¯ã§ããŸããã ã¹ã€ããã¯ãã°ã«ãŒãå
ã§ã®åæç¶æ
ã®å€æŽããµããŒãããå¿
èŠããããŸãã 代ããã«ãã¹ã€ããã®
checked
å€ã¯æ¡ä»¶ã«ãã£ãŠèšå®ãããŸãã ç§ãã¡ã®å Žåããã®æ¡ä»¶ã¯
this.state.gender
ã®stateããããã£ãæåå
male
ãŸãã¯
female
ãšæ¯èŒããããšã§è¡šãããŸãã ã¹ã€ããèšè¿°ã³ãŒãã§ã¯ã次ã®ããã«ãªããŸãã
<label> <input type="radio" name="gender" value="male" checked={this.state.gender === "male"} onChange={this.handleChange} /> Male </label> <br /> <label> <input type="radio" name="gender" value="female" checked={this.state.gender === "female"} onChange={this.handleChange} /> Female </label>
次ã«ãæ°ããããããã£
gender
ãç¶æ
ã«è¿œå ããç©ºã®æååã§åæåããŸãã
this.state = { firstName: "", lastName: "", isFriendly: false, gender: "" }
ãã®åŸãã¹ã€ããã¯ãã§ãã¯ããã¯ã¹ã«é¢ä¿ãªãæ©èœããŸãã ã³ã³ããŒãã³ããåºåããã³ãŒãã«ãéžæãããŠããã¹ã€ããã«é¢ããæ
å ±ã衚瀺ãã第2ã¬ãã«ã®ããããŒã远å ããŸãã
<h2><font color="#3AC1EF">You are a {this.state.gender}</font></h2>
ããã§ã¯ããããããæ¡ä»¶ä»ãã¬ã³ããªã³ã°ã®ã¡ã«ããºã ãå°å
¥ãã䟡å€ããããŸãã ããã«ãããããŒãžãéãããšããã©ãžãªãã¿ã³ãéžæãããŠããªããšãã«ã
You are a
ãšããããã¹ã
You are a
衚瀺ãããªãããã«ã§ããŸãããèªåã§å®è£
ããããšã¯ã§ããŸãããããã¯è¡ããŸããã ã§ã¯ãåŸããããã®ãèŠãŠã¿ãŸãããã
ã¢ããªã±ãŒã·ã§ã³ããŒãžãåãæ¿ããŸãããã§è©±ããããšã¯ãã¹ãŠéåžžã«è€éã«æãããããããŸããã ç¹ã«ãããã¯ããŸããŸãªã³ã³ãããŒã«ã®æ©èœã®èšæ¶ã«é¢ãããã®ã§ãã ãã©ãŒã ã§ã®äœæ¥ãç°¡çŽ åããããã«ãç¹æ®ãªã©ã€ãã©ãªã䜿çšã§ããŸãã ããšãã°ã
formikã©ã€ãã©ãªã ãã®ã©ã€ãã©ãªã¯ãReactã¢ããªã±ãŒã·ã§ã³ã§ãã©ãŒã ãéçºããããã»ã¹ã倧å¹
ã«ç°¡çŽ åããŸãã
次ã«ããªã¹ããã£ãŒã«ãã«ã€ããŠèª¬æããŸãã
éåžžã®HTMLã§ã¯ãæ¬¡ã®æ§æäœã䜿çšããŠã³ã³ãããã¯ã¹ãèšè¿°ããŸãã
<select> <option></option> <option></option> <option></option> <select/>
Reactãåæ§ã®ã¢ãããŒããåããŸãããä»ã®èŠçŽ ãšåæ§ã«ã
value
屿§ã䜿çšãããŸãã ããã«ãããã©ã®ãªã¹ãé
ç®ãéžæãããŠããããæ£ç¢ºã«èŠã€ãããããªããããã«ãã³ã³ããŒãã³ãã®ç¶æ
ã§ã®äœæ¥ã容æã«ãªããŸãã
ãŠãŒã¶ãŒããæ°ã«å
¥ãã®è²ãéžæã§ããã³ã³ãããã¯ã¹ãäœæãããšããŸãã ãããè¡ãã«ã¯ã
select
èŠçŽ ã®
value
屿§ã«æ¬¡ã®æ§æèŠçŽ ãé
眮
select
ãŸãïŒ
value={this.state.favColor}
ã ããã«ããããŠãŒã¶ãŒãéžæããå€ãååŸãããŸãã æ¬¡ã«ãç¶æ
ã«
favColor
ã远å ããŸãã
this.state = { firstName: "", lastName: "", isFriendly: false, gender: "", favColor: "blue" }
次ã«ãã³ã³ãããã¯ã¹ã«
onChange
ã€ãã³ã
onChange
ãè£
åããååãä»ããŸãã ãŸããã³ã³ãããã¯ã¹ã®
options
èŠçŽ ã«å€ã®å€ãå²ãåœãŠãããã¯ã¹ã«è¡šç€ºãããããã¹ããå
¥åããŸãã
select
眲å
select
èŠçŽ ã¯ã眲åã䜿çšãããšæ¬¡ã®ããã«ãªããŸãã
<label>Favorite Color:</label> <select value={this.state.favColor} onChange={this.handleChange} name="favColor" > <option value="blue">Blue</option> <option value="green">Green</option> <option value="red">Red</option> <option value="orange">Orange</option> <option value="yellow">Yellow</option> </select>
次ã«ããŠãŒã¶ãŒã®ãæ°ã«å
¥ãã®è²ã衚瀺ããå¥ã®ç¢æããã©ãŒã ã«è¿œå ããŸãã
<h2><font color="#3AC1EF">Your favorite color is {this.state.favColor}</font></h2>
ã³ã³ãããã¯ã¹ã詊ããŠã¿ãŸãããã
ã³ã³ãããã¯ã¹ã芧ã®ããã«ãç§ãã¡ã®ãã©ãŒã ã¯æŽç·Žããããã¶ã€ã³ã§ã¯èŒããŸãããããã©ãŒã ã«é
眮ãããã³ã³ãããŒã«ã¯æåŸ
ã©ããã«æ©èœããŸãã
Reactã§ã®Reactã³ã³ãããŒã«ã®ç·šææ¹æ³ã®ãããã§ãåããã³ãã©ãŒã䜿çšããŠã€ãã³ããåŠçããã®ã¯ç°¡åã§ãã ããã¯ãŸãã«ç§ãã¡ã®ã±ãŒã¹ã§äœ¿çšãããŠããäœæ¥ã¹ããŒã ã§ãã
handleChange()
ãã³ãã©ãŒã®å¯äžã®æ©èœã¯ãç¹å¥ãªæ¹æ³ã§ãã©ã°ã€ãã³ããåŠçããå¿
èŠãããããšã§ãã
次ã«ããã©ãŒã ã®éä¿¡ããŸãã¯å
¥åå®äºåŸã®å
¥åå€ã®åŠçã«ã€ããŠèª¬æããŸãã ãã®ãããªã¢ã¯ã·ã§ã³ã®å®è£
ã«ã¯2ã€ã®ã¢ãããŒãããããŸãã ãããã®ããããã䜿çšããå Žåããã©ãŒã ã«ã¯ãã¿ã³ãè£
åãããŠããå¿
èŠããããŸãã
<button>Submit</button>
HTML5ã§ã¯ã
button
èŠçŽ ããã©ãŒã ã§èŠã€ãã£ãå Žåã
submit
åã®å€ã
input
èŠçŽ ãšããŠæ©èœããŸãã ãã®ãã¿ã³ãã¯ãªãã¯ãããšã
onSubmit
ãã©ãŒã èªäœã®ã€ãã³ããããªã¬ãŒãããŸãã ãã©ãŒã ã®å®æåŸã«äœããè¡ãå¿
èŠãããå Žåã¯ããã¿ã³ã«
onClick
ã€ãã³ã
onClick
ã远å ã§ããŸãããããšãã°ãå人çã«ãã®ãããªã€ãã³ãããã©ãŒã ã¬ãã«ã§åŠçãã
onSubmit
ã€ãã³ããã³ãã©ãŒãå²ãåœãŠãããšã
onSubmit
ã
<form onSubmit={this.handleSubmit}>
ãã®ã€ãã³ãã®ãã³ãã©ãŒãšããŠäœ¿çšãããã¡ãœããã¯ãŸã äœæãããŠããŸããã ããã¯éåžžã®ã€ãã³ããã³ãã©ã§ãããšãã°ç¹å®ã®APIãåç
§ããŠããã©ãŒã ããŒã¿ãæž¡ããŸãã
ãŸãšã
ãã®ã¬ãã¹ã³ã§ã¯ãReactã§ãã©ãŒã ãæäœããããšã«ã€ããŠèª¬æããŸãã æ¬¡åã¯ããã®ãããã¯ã«é¢ããå®è·µçãªäœæ¥ãèŠã€ããŸãã
芪æãªãèªè
ïŒ formikã©ã€ãã©ãªã䜿çšããŠReactã§ãã©ãŒã ãäœæããããšããå Žåã¯ãããã«ã€ããŠæããŠãã ããã
