рд░рд┐рдПрдХреНрдЯ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рднрд╛рдЧ 25: рдлрд╛рд░реНрдо рдкрд░ рдХрд╛рд░реНрдпрд╢рд╛рд▓рд╛

рд░рд┐рдПрдХреНрдЯ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдкрд╛рдареНрдпрдХреНрд░рдо рдХреЗ рдЕрдиреБрд╡рд╛рдж рдХреЗ рдПрдХ рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ, рдЖрдкрдХреЛ рдПрдХ рдлреЙрд░реНрдо рдЯрд╛рд╕реНрдХ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдордВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЫрд╡рд┐

тЖТ рднрд╛рдЧ 1: рдкрд╛рдареНрдпрдХреНрд░рдо рдЕрд╡рд▓реЛрдХрди, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рдХрд╛рд░рдг, ReactDOM рдФрд░ JSX
тЖТ рднрд╛рдЧ 2: рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдШрдЯрдХ
тЖТ рднрд╛рдЧ 3: рдШрдЯрдХ рдлрд╛рдЗрд▓реЗрдВ, рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдВрд░рдЪрдирд╛
тЖТ рднрд╛рдЧ 4: рдорд╛рддрд╛-рдкрд┐рддрд╛ рдФрд░ рдмрдЪреНрдЪреЗ рдХреЗ рдШрдЯрдХ
тЖТ рднрд╛рдЧ 5: рдПрдХ TODO рдЖрд╡реЗрджрди рдкрд░ рдХрд╛рдо рдХреА рд╢реБрд░реБрдЖрдд, рд╕реНрдЯрд╛рдЗрд▓ рдХреА рдореВрд▓ рдмрд╛рддреЗрдВ
тЖТ рднрд╛рдЧ 6: рдкрд╛рдареНрдпрдХреНрд░рдо рдХреА рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдЬреЗрдПрд╕рдПрдХреНрд╕ рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ
тЖТ рднрд╛рдЧ 7: рдЗрдирд▓рд╛рдЗрди рд╢реИрд▓реА
тЖТ рднрд╛рдЧ 8: TODO рдЖрд╡реЗрджрди рдкрд░ рдХрд╛рдо рдЬрд╛рд░реА рд░рдЦрд╛, рдШрдЯрдХреЛрдВ рдХреЗ рдЧреБрдгреЛрдВ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд
тЖТ рднрд╛рдЧ 9: рдШрдЯрдХ рдЧреБрдг
тЖТ рднрд╛рдЧ 10: рдШрдЯрдХ рдЧреБрдгреЛрдВ рдФрд░ рд╕реНрдЯрд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдкрд░ рдХрд╛рд░реНрдпрд╢рд╛рд▓рд╛
тЖТ рднрд╛рдЧ 11: рдбрд╛рдпрдиреЗрдорд┐рдХ рдорд╛рд░реНрдХрдЕрдк рдЬреЗрдирд░реЗрд╢рди рдФрд░ рдореИрдк рдПрд░реЗ рд╡рд┐рдзрд┐
тЖТ рднрд╛рдЧ 12: рдХрд╛рд░реНрдпрд╢рд╛рд▓рд╛, рдПрдХ TODO рдЖрд╡реЗрджрди рдкрд░ рдХрд╛рдо рдХрд╛ рддреАрд╕рд░рд╛ рдЪрд░рдг
тЖТ рднрд╛рдЧ 13: рд╡рд░реНрдЧ-рдЖрдзрд╛рд░рд┐рдд рдШрдЯрдХ
тЖТ рднрд╛рдЧ 14: рд╡рд░реНрдЧ-рдЖрдзрд╛рд░рд┐рдд рдШрдЯрдХреЛрдВ, рдШрдЯрдХ рд╕реНрдерд┐рддрд┐ рдкрд░ рдХрд╛рд░реНрдпрд╢рд╛рд▓рд╛
тЖТ рднрд╛рдЧ 15: рдШрдЯрдХ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдХрд╛рд░реНрдпрд╢рд╛рд▓рд╛рдПрдБ
тЖТ рднрд╛рдЧ 16: TODO рдЖрд╡реЗрджрди, рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдкрд░ рдХрд╛рдо рдХрд╛ рдЪреМрдерд╛ рдЪрд░рдг
тЖТ рднрд╛рдЧ 17: TODO рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкрд░ рдХрд╛рдо рдХрд╛ рдкрд╛рдВрдЪрд╡рд╛ рдЪрд░рдг, рдШрдЯрдХреЛрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддрд╛ рд╣реИ
тЖТ рднрд╛рдЧ 18: TODO рдЖрд╡реЗрджрди рдкрд░ рдХрд╛рдо рдХрд╛ рдЫрдард╛ рдЪрд░рдг
тЖТ рднрд╛рдЧ 19: рдШрдЯрдХ рдЬреАрд╡рди рдЪрдХреНрд░ рд╡рд┐рдзрд┐рдпрд╛рдБ
рднрд╛рдЧ 20: рд╕рд╢рд░реНрдд рдкреНрд░рддрд┐рдкрд╛рджрди рдореЗрдВ рдкрд╣рд▓рд╛ рдкрд╛рда
тЖТ рднрд╛рдЧ 21: рд╕рд╢рд░реНрдд рдкреНрд░рддрд┐рдкрд╛рджрди рдкрд░ рджреВрд╕рд░рд╛ рдкрд╛рда рдФрд░ рдХрд╛рд░реНрдпрд╢рд╛рд▓рд╛
тЖТ рднрд╛рдЧ 22: TODO рдЖрд╡реЗрджрди рдкрд░ рдХрд╛рдо рдХрд╛ рд╕рд╛рддрд╡рд╛рдВ рдЪрд░рдг, рдмрд╛рд╣рд░реА рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рдбреЗрдЯрд╛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛
тЖТ рднрд╛рдЧ 23: рд░реВрдкреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдкрд░ рдкрд╣рд▓рд╛ рдкрд╛рда
тЖТ рднрд╛рдЧ 24: рджреВрд╕рд░рд╛ рд░реВрдк рдкрд╛рда
тЖТ рднрд╛рдЧ 25: рд░реВрдкреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдкрд░ рдХрд╛рд░реНрдпрд╢рд╛рд▓рд╛
тЖТ рднрд╛рдЧ 26: рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛, рдХрдВрдЯреЗрдирд░ / рдШрдЯрдХ рдкреИрдЯрд░реНрди
тЖТ рднрд╛рдЧ 27: рдкрд╛рдареНрдпрдХреНрд░рдо рдкрд░рд┐рдпреЛрдЬрдирд╛

рдкрд╛рда 43. рдХрд╛рд░реНрдпрд╢рд╛рд▓рд╛ред рд░реВрдкреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ


тЖТ рдореВрд▓

тЦНZadanie


рдЗрд╕ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдкрд╛рда рдореЗрдВ, рдЖрдкрдХреЛ App рдШрдЯрдХ рдХреЗ рдХреЛрдб рдХреЛ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдордВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдХрд┐ create-react-app рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ рдорд╛рдирдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ App.js рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИред рдпрд╣рд╛рдБ рдХреЛрдб рд╣реИ:

 import React, {Component} from "react" class App extends Component {   constructor() {       super()       this.state = {}   }     render() {       return (           <main>               <form>                   <input placeholder="First Name" /><br />                   <input placeholder="Last Name" /><br />                   <input placeholder="Age" /><br />                                     {/*       */}                   <br />                                     {/*          */}                   <br />                                     {/*        */}                   <br />                                     <button>Submit</button>               </form>               <hr />               <h2><font color="#3AC1EF">Entered information:</font></h2>               <p>Your name: {/*    */}</p>               <p>Your age: {/*  */}</p>               <p>Your gender: {/*  */}</p>               <p>Your destination: {/*   */}</p>               <p>                   Your dietary restrictions:                   {/*    */}               </p>           </main>       )   } } export default App 

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЖрдкрдХрд╛ рдХрд╛рд░реНрдп рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рд╣реИ рдХрд┐ рдкреНрд░рдкрддреНрд░ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬреЛ рдбреЗрдЯрд╛ рджрд░реНрдЬ рдХрд░рддрд╛ рд╣реИ, рд╡рд╣ рдЗрд╕ рдлрд╝реЙрд░реНрдо рдХреЗ рдиреАрдЪреЗ рдкрд╛рда рдореЗрдВ рддреБрд░рдВрдд рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред рдЬреИрд╕реЗ рд╣реА рдЖрдк рдХрд╛рд░реНрдп рдкреВрд░рд╛ рдХрд░рддреЗ рд╣реИрдВ, рдкреНрд░рдмрдВрдзрд┐рдд рдШрдЯрдХ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдПрдВред рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЖрдкрдХреЗ рд▓рд┐рдП рджрд┐рдпрд╛ рдЧрдпрд╛ рдХрд╛рд░реНрдп рдЗрд╕ рдХрд╛рд░реНрдп рдХрд╛ рдПрдХ рдЕрдиреБрдХреВрд▓рд┐рдд рд╕рдВрд╕реНрдХрд░рдг рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдЙрди рдирд┐рдпрдВрддреНрд░рдгреЛрдВ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрди рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдмрдирд╛рдиреЗ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдордВрддреНрд░рд┐рдд рд╣реИрдВред

рдпрд╣рд╛рдБ рд╡рд╣ рдШрдЯрдХ рд╣реИ рдЬреЛ рдЕрдм рд╕реНрдХреНрд░реАрди рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИред


рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЕрдиреБрдкреНрд░рдпреЛрдЧ

тЦНReshenie


рдЖрдк рд╡рд┐рднрд┐рдиреНрди рдХреЛрдгреЛрдВ рд╕реЗ рдЖрдкрдХреЗ рд╕рд╛рдордиреЗ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рд╕рдВрдкрд░реНрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо рд░рд╛рдЬреНрдп рдореЗрдВ рдЕрдкрдиреА рдЬрд░реВрд░рдд рдХреА рд╕рднреА рдЪреАрдЬреЗрдВ рдбрд╛рд▓рдХрд░ рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗ, рдЗрд╕рдХреЗ рдмрд╛рдж рд╣рдо рдирд┐рдпрдВрддреНрд░рдг рдФрд░ рдШрдЯрдХ рдХреЗ рдЕрдиреНрдп рддрдВрддреНрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВрдЧреЗред

рдлрд┐рд▓рд╣рд╛рд▓, рдШрдЯрдХ рдХреА рд╕реНрдерд┐рддрд┐ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдП рдЧрдП рдЕрдиреБрд╕рд╛рд░ рджрд┐рдЦрд╛рдИ рджреЗрдЧреАред

 this.state = {   firstName: "",   lastName: "",   age: 0,   gender: "",   destination: "",   dietaryRestrictions: [] } 

рдпрд╣ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд┐рд╕реА рд░рд╛рдЬреНрдп рдХреЛ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрдЧрд╛ред рдпрджрд┐ рд╣рдо рдХреБрдЫ рдЗрд╕реА рддрд░рд╣ рд╕реЗ рдЪрд▓рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рд░рд╛рдЬреНрдп рдЖрд░рдВрднреАрдХрд░рдг рдХреЛрдб рдХреЛ рдмрджрд▓ рджреЗрдВрдЧреЗред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЕрдм age рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ рд▓рд┐рдЦреЗ рдирдВрдмрд░ 0 рдХреЗ рдХрд╛рд░рдг рдХреБрдЫ рд╕рдВрджреЗрд╣ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рджрд░реНрдЬ рдХреА рдЧрдИ рдЖрдпреБ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдирд╛ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рд╢рд╛рдпрдж, рдлреНрд▓реИрдЧ рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░реЗрдЬ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдЕрдиреНрдпрдерд╛ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛, рдЬрд┐рд╕реЗ рдЕрдм рдПрдХ рдЦрд╛рд▓реА рд╕рд░рдгреА рджреНрд╡рд╛рд░рд╛ рдЖрд░рдореНрдн рдХрд┐рдпрд╛ рдЧрдпрд╛, dietaryRestrictions рдкреНрд░реЙрдкрд░реНрдЯреА рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЕрдм, рд░рд╛рдЬреНрдп рдХреЗ рдЖрд░рдВрднреАрдХрд░рдг рдХреЗ рдмрд╛рдж, рд╣рдо рдирд┐рдпрдВрддреНрд░рдгреЛрдВ рдХрд╛ рд╡рд┐рдиреНрдпрд╛рд╕ рдХрд░реЗрдВрдЧреЗред рдЪреВрдВрдХрд┐ рдХреЛрдб рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдб рдХрд╛ рд╡рд┐рд╡рд░рдг рд╣реИ - рдЪрд▓реЛ рдЙрдирдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░реЗрдВред

рдЗрди рдирд┐рдпрдВрддреНрд░рдгреЛрдВ рдХреЛ рдЙрдирдХреЗ name рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рд╕реЗрдЯ рдХрд░рдХреЗ name рджрд┐рдП рдЬрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рддрд╛рдХрд┐ рд╡реЗ рдЙрди рд░рд╛рдЬреНрдп рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЗ рдирд╛рдореЛрдВ рд╕реЗ рдореЗрд▓ рдЦрд╛рдПрдВ рдЬрд┐рдирдореЗрдВ рдЗрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рджрд░реНрдЬ рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЙрдирдХреЗ рдкрд╛рд╕ рдПрдХ value рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕рдХрд╛ рдореВрд▓реНрдп рд░рд╛рдЬреНрдп рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдбреЗрдЯрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ рдбреЗрдЯрд╛ рджрд░реНрдЬ рдХрд░рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдШрдЯрдХ рдХреЛ рджрд░реНрдЬ рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдХреЛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рдЙрдирдХреЗ рд▓рд┐рдП onChange рдЗрд╡реЗрдВрдЯ onChange ред рдпреЗ рд╕рднреА рд╡рд┐рдЪрд╛рд░ рдЗрд╕ рддрдереНрдп рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдЦреЗрддреЛрдВ рдХрд╛ рд╡рд┐рд╡рд░рдг рдЕрдм рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

 <input   name="firstName"   value={this.state.firstName}   onChange={this.handleChange}   placeholder="First Name" /> <br /> <input   name="lastName"   value={this.state.lastName}   onChange={this.handleChange}   placeholder="Last Name" /> <br /> <input   name="age"   value={this.state.age}   onChange={this.handleChange}   placeholder="Age" /> 

рдЗрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреА рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╡рд┐рдзрд┐ рдХреЗ рд░реВрдк рдореЗрдВ, рдпрд╣ this.handleChange рдЕрднреА рднреА рдЕрд╕реНрддрд┐рддреНрд╡рд╣реАрди рд╣реИред рдЗрд╕ рд╡рд┐рдзрд┐ рдмрдирд╛рдПрдБ:

 handleChange(event) {   const {name, value} = event.target   this.setState({       [name]: value   }) } 

рдпрд╣рд╛рдБ рд╣рдо event.target рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ name рдФрд░ value рдЧреБрдг event.target , рдФрд░ рдлрд┐рд░ рд╕рдВрдмрдВрдзрд┐рдд рд░рд╛рдЬреНрдп рдЧреБрдг рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдлрд┐рд▓рд╣рд╛рд▓, рдЗрд╕ рддрд░рд╣ рдХрд╛ рдПрдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдХреЛрдб рд╣рдорд╛рд░реЗ рдЕрдиреБрд░реВрдк рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдмрд╛рдж рдореЗрдВ, рдЬрдм рд╣рдореЗрдВ рдЭрдВрдбреЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рддреЛ рд╣рдо рдЗрд╕рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд░реЗрдВрдЧреЗред

рдШрдЯрдХ рдирд┐рд░реНрдорд╛рддрд╛ рдореЗрдВ рдХрд┐рдП рдЧрдП this рдмрдВрдзрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдордд рднреВрд▓рдирд╛:

 this.handleChange = this.handleChange.bind(this) 

firstName , secondName firstName рдФрд░ age рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рджрд░реНрдЬ рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдХреЗ рдкреГрд╖реНрда рдХреЗ рдирд┐рдЪрд▓реЗ рднрд╛рдЧ рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, secondName рд╕рдВрдмрдВрдзрд┐рдд <p> рддрддреНрд╡реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ, рдЙрдиреНрд╣реЗрдВ рдирд┐рдореНрди рд░реВрдк рдореЗрдВ secondName :

 <p>Your name: {this.state.firstName} {this.state.lastName}</p> <p>Your age: {this.state.age}</p> 

рдЕрдм рдПрдХ рдирдЬрд░ рдбрд╛рд▓рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдореЗрдВ рдХреНрдпрд╛ рдорд┐рд▓рд╛ред


рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЕрдиреБрдкреНрд░рдпреЛрдЧ

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЙрдореНрд░ рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕рдВрдХреЗрдд рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, age рдХреА рд░рд╛рдЬреНрдп рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ рдЬреЛ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╡рд╣ рд╣реИ, рдЕрд░реНрдерд╛рдд, рд╣рдореЗрдВ рдЦрд╛рд▓реА рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╕рдВрдХреЗрдд рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдЗрдП, рд░рд╛рдЬреНрдп рдореЗрдВ age рдХреЗ рдореВрд▓реНрдп рдХреЛ null рд╕реЗ рдмрджрд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдЙрд╕рдХреЗ рдмрд╛рдж, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдкреНрд░рдкрддреНрд░ рдЬреИрд╕рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рд╡реИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди age рдХреНрд╖реЗрддреНрд░ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪреЗрддрд╛рд╡рдиреА рдХрдВрд╕реЛрд▓ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреА рдЧрдИ рд╣реИ:

 Warning: `value` prop on `input` should not be null. Consider using an empty string to clear the component or `undefined` for uncontrolled components 

рдирддреАрдЬрддрди, рд╣рдореЗрдВ рд░рд╛рдЬреНрдп рдХреА рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдореВрд▓реНрдп рдХреЛ рдПрдХ рдЦрд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬрд┐рд╕рд╕реЗ рд░рд╛рдЬреНрдп рдЖрд░рдВрднреАрдХрд░рдг рдХреЛрдб рдХреЛ рдирд┐рдореНрди рдЪрд░рдгреЛрдВ рдореЗрдВ рд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

 this.state = {   firstName: "",   lastName: "",   age: "",   gender: "",   destination: "",   dietaryRestrictions: [] } 

рдЕрдм рдлреЙрд░реНрдо рдХреЛ рдЖрдЬрдорд╛рдПрдВред рдЙрджреНрдШрд╛рдЯрди рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж, рдпрд╣ рдХрд╛рдо рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╣реА рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛, рдЕрд░реНрдерд╛рддреН, рдкреНрд░реЙрдореНрдкреНрдЯ age рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧрд╛ред рдЦреЗрддреЛрдВ рдореЗрдВ рднрд░рддреЗ рд╕рдордп, рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдбреЗрдЯрд╛ рдкреГрд╖реНрда рдХреЗ рдиреАрдЪреЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдЧрд╛ред


рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЕрдиреБрдкреНрд░рдпреЛрдЧ

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдХрд╛рдо рдХреЗ рдЗрд╕ рд╕реНрддрд░ рдкрд░, рд╕рдм рдХреБрдЫ рдЕрдкреЗрдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред

рдЕрдм рд╣рдо рдирдП рддрддреНрд╡реЛрдВ рдореЗрдВ рд▓рдЧреЗ рд░рд╣реЗрдВрдЧреЗред рдкреНрд░рдкрддреНрд░ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдЕрдЧрд▓рд╛ рдЪрд░рдг рдЗрд╕рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред

рд╣рдо рд╕реНрд╡рд┐рдЪ рдХреЛ <label> рдореЗрдВ рд▓рдкреЗрдЯрддреЗ рд╣реИрдВ, рдЬреЛ рд╣рдореЗрдВ рди рдХреЗрд╡рд▓ рд╕реНрд╡рд┐рдЪ рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛, рдмрд▓реНрдХрд┐ рдпрд╣ рднреА рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдЧрд╛ рдХрд┐ рдЗрд╕ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдирд╛, рдЕрд░реНрдерд╛рдд, рдЗрд╕рдХреЗ рдореВрд▓ рддрддреНрд╡ рдкрд░, рдЗрд╕рдХреЗ рдЪрдпрди рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИред

рд╕реНрд╡рд┐рдЪ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рдпрд╣ рдпрд╛рдж рд░рдЦрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рд╡реЗ checked рд╡рд┐рд╢реЗрд╖рддрд╛ рдФрд░ рдЯреЗрдХреНрд╕реНрдЯ рдлрд╝реАрд▓реНрдб рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЭрдВрдбреЗ рдХрд╛ рд╕рдВрдпреЛрдЬрди рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ value рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИред рд╕реНрд╡рд┐рдЪ рдПрдХ рд╕рдореВрд╣ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╕реНрд╡рд┐рдЪ рдХреЛ рдПрдХ рд╣реА рдирд╛рдо рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╕реНрд╡рд┐рдЪреЗрд╕ рдХреА checked рдХреА checked рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдПрдХ рд╢рд░реНрдд рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддрд╛рдХрд┐ рдЗрд╕реЗ рдПрдХ рд╣реА рд╕рдореВрд╣ рдХреЗ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд╕реНрд╡рд┐рдЪ рдЪрд╛рд▓реВ рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реЛред onChange рд╕реНрд╡рд┐рдЪ рдХреЗ рд▓рд┐рдП рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВ onChange ред

рдирддреАрдЬрддрди, рд╕реНрд╡рд┐рдЪ рд╡рд┐рд╡рд░рдг рдХреЛрдб рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛:

 <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> 

рдЕрдм рд╣рдо <p> рдХреЗ рдирд┐рдЪрд▓реЗ рднрд╛рдЧ рдкрд░ рд╕реНрдерд┐рдд <p> рддрддреНрд╡ рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░реЗрдВрдЧреЗ:

 <p>Your gender: {this.state.gender}</p> 

рдЙрд╕рдХреЗ рдмрд╛рдж, рдлреЙрд░реНрдо рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж, рджреЛрдиреЛрдВ рд╕реНрд╡рд┐рдЪ рдЕрдЪрдпрдирд┐рдд рд╣реЛрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рд░рд╛рдЬреНрдп рдПрдХ рдореВрд▓реНрдп рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдХрд┐рд╕реА рднреА рдЪреЗрдХ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ рдЬрдм рдЙрдирдХреА checked рд╕рдВрдкрддреНрддрд┐ рдХреЛ checked рд▓рд┐рдП рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ true ред рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╕рдВрдмрдВрдзрд┐рдд рдорд╛рди рд░рд╛рдЬреНрдп рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ (рд╕реНрд╡рд┐рдЪ рдХреА value рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд), рд╕реНрд╡рд┐рдЪ рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕реА рдкрд╛рда рдХреЛ рдлреЙрд░реНрдо рдХреЗ рдиреАрдЪреЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред


рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЕрдиреБрдкреНрд░рдпреЛрдЧ

рдЕрдм рдЪрд▓реЛ рдХреЙрдореНрдмреЛ рдмреЙрдХреНрд╕ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдЙрдирдХреА рд╡рд░реНрдХрдкреАрд╕ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ:

 <select>   <option></option>   <option></option>   <option></option>   <option></option> </select> 

рдпрд╣ рдХреЛрдб рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЪрд╛рд░ рд╡рд╕реНрддреБрдУрдВ рд╡рд╛рд▓реЗ рдХреЙрдореНрдмреЛ рдмреЙрдХреНрд╕ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВред

<select> рдЯреИрдЧ рдФрд░ рдЗрд╕рдХреЗ <option> рдЯреИрдЧ рдореЗрдВ рдПрдХ value рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпреЗ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЕрд░реНрде рд▓реЗрддреА рд╣реИрдВред <option> рддрддреНрд╡ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдореВрд▓реНрдп value рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдЬрдм рдЗрд╕ рддрддреНрд╡ рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рд╕рдВрдмрдВрдзрд┐рдд рд░рд╛рдЬреНрдп рд╕рдВрдкрддреНрддрд┐ рдХреНрдпрд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдпреЗ рд╡реЛ рд▓рд╛рдЗрдиреЗрдВ рд╣реИрдВ рдЬреЛ рдбреНрд░реЙрдк-рдбрд╛рдЙрди рд╕реВрдЪреА рдореЗрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпреЗ рдХреБрдЫ рдирд┐рд╢реНрдЪрд┐рдд рдЧрдВрддрд╡реНрдп рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рджреЗрд╢ред рд╣рдо рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдкрддреНрд░ рдХреЗ рд╕рд╛рде рдЙрдирдХреЗ рдирд╛рдо рд▓рд┐рдЦрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЙрдирдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЛрдб рдореЗрдВ рдЕрдиреНрдп рддрддреНрд╡реЛрдВ рдХреЗ value рдЧреБрдгреЛрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛред рдЙрд╕рдХреЗ рдмрд╛рдж, рдХреЙрдореНрдмреЛ рдмреЙрдХреНрд╕ рдХрд╛ рдХреЛрдб рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:

 <select value=>   <option value="germany">Germany</option>   <option value="norway">Norway</option>   <option value="north pole">North Pole</option>   <option value="south pole">South Pole</option> </select> 

рдпрджрд┐ рд╣рдо <select> рдХреЗ value рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХреБрдЫ рд╣рд╛рд░реНрдб-рдХреЛрдбрд┐рдд рдореВрд▓реНрдп рдпрд╣рд╛рдВ рдирд╣реАрдВ рджрд┐рдЦрд╛рдП рдЬрд╛рдПрдВрдЧреЗ, рд▓реЗрдХрд┐рди рд╕рдВрдмрдВрдзрд┐рдд рд░рд╛рдЬреНрдп рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ:

 <select value={this.state.destination}>   <option value="germany">Germany</option>   <option value="norway">Norway</option>   <option value="north pole">North Pole</option>   <option value="south pole">South Pole</option> </select> 

рдлрд╝реАрд▓реНрдб рдЕрдиреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдЕрд╕рд╛рдЗрди рдХрд░реЗрдВред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рд░рд╛рдЬреНрдп рдореЗрдВ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдирд╛рдо рдХреЗ рдЕрдиреБрд░реВрдк рдирд╛рдо, рдФрд░ this.handleChange рдЗрд╡реЗрдВрдЯ onChange , this.handleChange ред

 <select   value={this.state.destination}   name="destination"   onChange={this.handleChange} >   <option value="germany">Germany</option>   <option value="norway">Norway</option>   <option value="north pole">North Pole</option>   <option value="south pole">South Pole</option> </select> 

рдЕрдм рд╣рдо <p> рддрддреНрд╡ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВрдЧреЗ, рдЬреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛ рдХрд┐ destination рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдХреНрдпрд╛ рдЪреБрдирд╛ рдЧрдпрд╛ destination :

 <p>Your destination: {this.state.destination}</p> 

рдпрджрд┐ рдЖрдк рдЕрднреА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдкреГрд╖реНрда рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕реВрдЪреА рдХрд╛ рдкрд╣рд▓рд╛ рддрддреНрд╡ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдлрд╝реАрд▓реНрдб рдореЗрдВ рдЪреБрдирд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣, рдЬрд╛рд╣рд┐рд░ рд╣реИ, рд░рд╛рдЬреНрдп рдХреЗ рдПрдХ рдЕрдкрдбреЗрдЯ рдХреЗ рд▓рд┐рдП рдиреЗрддреГрддреНрд╡ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ Your destination: рдореЗрдВ рдХреЙрд▓реЛрди рдХреЗ рдмрд╛рдж рдХреБрдЫ рднреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ Your destination: рд▓рд╛рдЗрдиред


рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЕрдиреБрдкреНрд░рдпреЛрдЧ

рд░рд╛рдЬреНрдп рдореЗрдВ рдЧрд┐рд░рд╛рд╡рдЯ рдХреЗ рд▓рд┐рдП germany рдореВрд▓реНрдп рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХреЙрдореНрдмреЛ рдмреЙрдХреНрд╕ рдЦреЛрд▓рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдкрд╣рд▓реЗ рдХреБрдЫ рдФрд░ рдЪреБрдирдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдлрд┐рд░ Germany рдЪрдпрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдЕрдХреНрд╕рд░, рд╕реВрдЪреА рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреА рдЗрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрдирдХреА рд╕реВрдЪрд┐рдпреЛрдВ рдореЗрдВ, рдкрд╣рд▓реЗ рддрддреНрд╡ рдХреЗ рд░реВрдк рдореЗрдВ, рд╡реЗ рдПрдХ рдЦрд╛рд▓реА рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рдПрдХ рддрддреНрд╡ рдХреА рддрд░рд╣ рдХреБрдЫ рдбрд╛рд▓рддреЗ рд╣реИрдВ рдФрд░ рдЬреИрд╕реЗ рдкрд╛рда -- Please Choose a destination -- ред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдРрд╕рд╛ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ:

 <select   value={this.state.destination}   name="destination"   onChange={this.handleChange} >   <option value="">-- Please Choose a destination --</option>   <option value="germany">Germany</option>   <option value="norway">Norway</option>   <option value="north pole">North Pole</option>   <option value="south pole">South Pole</option> </select> 

рд╣рдо рдХреЙрдореНрдмреЛ рдмреЙрдХреНрд╕ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдВрдЧреЗред

рдЕрдм рдЖрдЗрдП, рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдп рдХрд╛ рд╕рдмрд╕реЗ рдХрдард┐рди рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ, рдЬреЛ рдЭрдВрдбреЗ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред рдпрд╣рд╛рдВ рдпрд╣ dietaryRestrictions рдХрд┐ рд░рд╛рдЬреНрдп рд╕рдВрдкрддреНрддрд┐ dietaryRestrictions , рдЬрд┐рд╕реЗ рдЭрдВрдбреЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рд╣реИ, рдХреЛ рдЦрд╛рд▓реА рд╕рд░рдгреА рдХреЗ рд╕рд╛рде рдЖрд░рдореНрдн рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЕрдм, рдЬрдм рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдмрд╛рдд рдЖрддреА рд╣реИ, рддреЛ рдпрд╣ рдорд╣рд╕реВрд╕ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдХреЛ рдПрдХ рд╡рд╕реНрддреБ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ред рддреЛ рдпрд╣ рдЙрди рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрдЧрд╛ рдЬреЛ рдЗрд╕ рдирд╛рдо рдХреЗ рдЧреБрдгреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЭрдВрдбреЗ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреЗ рд╣реИрдВ, рдЕрдиреБрдХреВрд▓ рдирд╛рдо рдХреЗ рд╕рд╛рде, рдФрд░ рд╕рд░рдгреА рддрддреНрд╡реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВред рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЧреБрдг, рдЬреЛ рдЕрдм dietaryRestrictions рд░рд╛рдЬреНрдп dietaryRestrictions рджреНрд╡рд╛рд░рд╛ dietaryRestrictions рдЬрд╛рдПрдВрдЧреЗ, рдЗрд╕рдореЗрдВ рдмреВрд▓рд┐рдпрди рдорд╛рди рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреЗ рдЬреЛ рдпрд╣ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рд╕рдВрдмрдВрдзрд┐рдд рдЪреЗрдХрдмреЙрдХреНрд╕ рд╕рд╛рдлрд╝ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ( false ) рдпрд╛ рдЪреЗрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ ( true )ред рдЕрдм рд░рд╛рдЬреНрдп рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХреЛрдб рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:

 this.state = {   firstName: "",   lastName: "",   age: "",   gender: "",   destination: "",   dietaryRestrictions: {       isVegan: false,       isKosher: false,       isLactoseFree: false   } } 

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рдордиреЗ рддреАрди рдЭрдВрдбреЗ рдмрдирд╛рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рд╣реИред рдкреГрд╖реНрда рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж, рд╡реЗ рд╕рднреА рд░реАрд╕реЗрдЯ рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред

рд╣рдо рдШрдЯрдХ рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдП рдЧрдП рдХреЛрдб рдореЗрдВ рдЭрдВрдбреЗ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ <label> рдЯреИрдЧ рдореЗрдВ рд▓рдкреЗрдЯрддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣рд╛рдБ рдЙрдирдХреЗ рдХреЛрдб рдХреА рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:

 <label>   <input       type="checkbox"       name="isVegan"       onChange={this.handleChange}       checked={this.state.dietaryRestrictions.isVegan}   /> Vegan? </label> <br /> <label>   <input       type="checkbox"       name="isKosher"       onChange={this.handleChange}       checked={this.state.dietaryRestrictions.isKosher}   /> Kosher? </label> <br /> <label>   <input       type="checkbox"       name="isLactoseFree"       onChange={this.handleChange}       checked={this.state.dietaryRestrictions.isLactoseFree}   /> Lactose Free? </label> 

рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдЭрдВрдбреЗ рдХреЗ рдирд╛рдо dietaryRestrictions рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдирд╛рдо рд╣реИрдВ, рдФрд░ рдЙрдирдХреЗ checked рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдорд╛рди рдЗрд╕ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд░реВрдк рд╣реИрдВ this.state.dietaryRestrictions.isSomething ред

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╣рд╛рд▓рд╛рдВрдХрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдореМрдЬреВрдж рдЗрд╕ред onChange рдХреЛ onChange this.handleChange рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╣рдореЗрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдХреБрдЫ рдмрджрд▓рд╛рд╡ рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗ рдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░реЗред

рдЖрд╡реЗрджрди рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред


рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЕрдиреБрдкреНрд░рдпреЛрдЧ

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдкреГрд╖реНрда рдкрд░ рдЭрдВрдбреЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВ, рд▓реЗрдХрд┐рди рдШрдЯрдХ рдореЗрдВ рдЕрднреА рддрдХ рд╕рднреА рддрдВрддреНрд░ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИрдВ рдЬреЛ рдЙрдирдХреЗ рдЙрдЪрд┐рдд рд╕рдВрдЪрд╛рд▓рди рдХреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВред рдЖрдЗрдП рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рд╕реЗ рдирд┐рдкрдЯрддреЗ рд╣реИрдВред

рдпрд╣рд╛рдВ, рдЪреЗрдХрдмреЙрдХреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рдирд┐рдХрд╛рд▓реЗ рдЧрдП, type рдФрд░ checked рдЧреБрдгреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ event.target рдХреЛ рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдкрд╣рд▓реЗ рддрддреНрд╡ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдЭрдВрдбреЗ checkbox рд▓рд╛рдЗрди рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдП рдЧрдП рдкреНрд░рдХрд╛рд░ рдХреЗ рд╣реИрдВ), рджреВрд╕рд░рд╛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ рдХрд┐ рдЪреЗрдХрдмреЙрдХреНрд╕ рдЪреЗрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рд╣реИред рдпрджрд┐ рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдзреНрд╡рдЬ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╣реИрдВрдбрд▓рд░ рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рд╣рдо рдПрдХ рд╡рд┐рд╢реЗрд╖ рд░рд╛рдЬреНрдп рд╕реЗрдЯрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдЕрдиреНрдп рдирд┐рдпрдВрддреНрд░рдгреЛрдВ рдХреА рдШрдЯрдирд╛рдУрдВ рдХреЛ рдкрд╣рд▓реЗ рдХреА рддрд░рд╣ рд╣реА рд╕рдВрднрд╛рд▓реЗрдВрдЧреЗред

рд░рд╛рдЬреНрдп рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╕рдордп, рдпрд╣ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд░рд┐рдПрдХреНрдЯ рдПрдХ рдХрд╛рдлреА рдмреБрджреНрдзрд┐рдорд╛рди рдкреНрд░рдгрд╛рд▓реА рд╣реИ, рдпрджрд┐ рд░рд╛рдЬреНрдп рдХрд╛ рдХреЗрд╡рд▓ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдирдП рд░рд╛рдЬреНрдп рдореЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЧрдардмрдВрдзрди рд╣реЛрдЧрд╛ рдЬреЛ рдХрд┐ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ рдХреЗ рд╕рд╛рде рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд░рд╣ рдЧрдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдХреЛрдИ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЧреБрдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо, рдЬреЛ рдХрд┐ рд░рд╛рдЬреНрдп рдХреЗ рдЧреБрдгреЛрдВ рдХреЗ рдореВрд▓реНрдп рд╣реИрдВ, рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдлреЙрд░реНрдо рдореЗрдВ handleChange рдХреЛрдб рд▓рд╛рдХрд░ рдЗрд╕реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВрдЧреЗред рдпрд╣рд╛рдВ рд╣рдо рдЗрд╕ рдзрд╛рд░рдгрд╛ рд╕реЗ рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВ рдХрд┐ dietaryRestrictions рдХреЗ рдЧреБрдгреЛрдВ рдХреЛ рдПрдХ рдмрд╛рд░ рдореЗрдВ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

 handleChange(event) {   const {name, value, type, checked} = event.target   type === "checkbox" ?       this.setState({           dietaryRestrictions: {               [name]: checked           }       })   :   this.setState({       [name]: value   }) } 

рдпрджрд┐ рдЖрдк рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреЗрдЬ рдЦреЛрд▓рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж, рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдЬрдм рдЖрдк рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, First Name рдлрд╝реАрд▓реНрдб рдореЗрдВ рдирд╛рдо рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рдм рдХреБрдЫ рдкрд╣рд▓реЗ рдХреА рддрд░рд╣ рднреА рдХрд╛рдо рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдЬрдм рдЖрдк рдЪреЗрдХрдмреЙрдХреНрд╕ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдирд┐рдореНрди рдЪреЗрддрд╛рд╡рдиреА рдЬрд╛рд░реА рдХреА рдЬрд╛рдПрдЧреАред :
рдЪреЗрддрд╛рд╡рдиреА: рдПрдХ рдШрдЯрдХ рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдк рдЪреЗрдХрдмреЙрдХреНрд╕ рдХреЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдЗрдирдкреБрдЯ рдХреЛ рдмрджрд▓ рд░рд╣рд╛ рд╣реИред рдЗрдирдкреБрдЯ рддрддреНрд╡реЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рд╕реЗ рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд (рдпрд╛ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд) рдкрд░ рд╕реНрд╡рд┐рдЪ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдШрдЯрдХ рдХреЗ рдЬреАрд╡рдирдХрд╛рд▓ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдВрддреНрд░рд┐рдд рдпрд╛ рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рдЗрдирдкреБрдЯ рддрддреНрд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмреАрдЪ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрдВред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА: fb.me/react-controlled-compenders

dietaryRestrictions рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рд╕реНрд╡рдпрдВ рд░рд╛рдЬреНрдп рдХрд╛ рдПрдХ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП setState рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдЧрд░ рд╣рдореЗрдВ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЭрдВрдбреЗ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдирд╛ рд╣реЛрддрд╛, рддреЛ рд╢рд╛рдпрдж рд╣рдо рдРрд╕рд╛ рдХрд░ рд▓реЗрддреЗред рд▓реЗрдХрд┐рди рдпрд╣рд╛рдБ рд╣рдо рдЕрдиреНрдпрдерд╛ рдХрд░реЗрдВрдЧреЗред рдЕрд░реНрдерд╛рддреН, рд╣рдо dietaryRestrictions рдХреЗ dietaryRestrictions рд╡рд╕реНрддреБ dietaryRestrictions рдмрдирд╛ рджреЗрдВрдЧреЗ, рдЗрд╕ рд╡рд╕реНрддреБ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ dietaryRestrictions :

 this.state = {   firstName: "",   lastName: "",   age: "",   gender: "",   destination: "",   isVegan: false,   isKosher: false,   isLactoseFree: false } 

рдЕрдм рд╣рдо рдЭрдВрдбреЗ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдмрджрд▓ рджреЗрдВрдЧреЗ, dietaryRestrictions рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛ dietaryRestrictions :

 <label>   <input       type="checkbox"       name="isVegan"       onChange={this.handleChange}       checked={this.state.isVegan}   /> Vegan? </label> <br /> <label>   <input       type="checkbox"       name="isKosher"       onChange={this.handleChange}       checked={this.state.isKosher}   /> Kosher? </label> <br /> <label>   <input       type="checkbox"       name="isLactoseFree"       onChange={this.handleChange}       checked={this.state.isLactoseFree}   /> Lactose Free? </label> 

рдФрд░ рдЕрдВрдд рдореЗрдВ, рдЙрд╕ рддрддреНрд╡ рдХреЗ рдХреЛрдб рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЖрд╣рд╛рд░ рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ:

 <p>Your dietary restrictions:</p> <p>Vegan: {this.state.isVegan ? "Yes" : "No"}</p> <p>Kosher: {this.state.isKosher ? "Yes" : "No"}</p> <p>Lactose Free: {this.state.isLactoseFree ? "Yes" : "No"}</p> 

рдЙрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рдЖрд╡реЗрджрди рдХреЗ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВрдЧреЗред


рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЕрдиреБрдкреНрд░рдпреЛрдЧ

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рдм рдХреБрдЫ рдЙрдореНрдореАрдж рдХреЗ рдореБрддрд╛рдмрд┐рдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдпрд╣рд╛рдБ App рдШрдЯрдХ рдХрд╛ рдкреВрд░рд╛ рдХреЛрдб рд╣реИ:

 import React, {Component} from "react" class App extends Component {   constructor() {       super()       this.state = {           firstName: "",           lastName: "",           age: "",           gender: "",           destination: "",           isVegan: false,           isKosher: false,           isLactoseFree: false       }       this.handleChange = this.handleChange.bind(this)   }     handleChange(event) {       const {name, value, type, checked} = event.target       type === "checkbox" ?           this.setState({               [name]: checked           })       :       this.setState({           [name]: value       })   }     render() {       return (           <main>               <form>                   <input                       name="firstName"                       value={this.state.firstName}                       onChange={this.handleChange}                       placeholder="First Name"                   />                   <br />                                     <input                       name="lastName"                       value={this.state.lastName}                       onChange={this.handleChange}                       placeholder="Last Name"                   />                   <br />                                     <input                       name="age"                       value={this.state.age}                       onChange={this.handleChange}                       placeholder="Age"                   />                   <br />                                     <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>                                     <br />                                     <select                       value={this.state.destination}                       name="destination"                       onChange={this.handleChange}                   >                       <option value="">-- Please Choose a destination --</option>                       <option value="germany">Germany</option>                       <option value="norway">Norway</option>                       <option value="north pole">North Pole</option>                       <option value="south pole">South Pole</option>                   </select>                                     <br />                                     <label>                       <input                           type="checkbox"                           name="isVegan"                           onChange={this.handleChange}                           checked={this.state.isVegan}                       /> Vegan?                   </label>                   <br />                                     <label>                       <input                           type="checkbox"                           name="isKosher"                           onChange={this.handleChange}                           checked={this.state.isKosher}                       /> Kosher?                   </label>                   <br />                                     <label>                       <input                           type="checkbox"                           name="isLactoseFree"                           onChange={this.handleChange}                           checked={this.state.isLactoseFree}                       /> Lactose Free?                   </label>                   <br />                                     <button>Submit</button>               </form>               <hr />               <h2><font color="#3AC1EF">Entered information:</font></h2>               <p>Your name: {this.state.firstName} {this.state.lastName}</p>               <p>Your age: {this.state.age}</p>               <p>Your gender: {this.state.gender}</p>               <p>Your destination: {this.state.destination}</p>               <p>Your dietary restrictions:</p>                             <p>Vegan: {this.state.isVegan ? "Yes" : "No"}</p>               <p>Kosher: {this.state.isKosher ? "Yes" : "No"}</p>               <p>Lactose Free: {this.state.isLactoseFree ? "Yes" : "No"}</p>                         </main>       )   } } export default App 

рдкрд░рд┐рдгрд╛рдо


рдЖрдЬ рдЖрдкрдиреЗ рд░реВрдкреЛрдВ рдкрд░ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдХрд╛рд░реНрдп рдкреВрд░рд╛ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИред рдлрд┐рд░ рдЖрдкрдиреЗ рдкрд┐рдЫрд▓реА рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рдЬреЛ рд╕реАрдЦрд╛, рдЙрд╕реЗ рджреЛрд╣рд░рд╛рдпрд╛ рдФрд░ рд╣рдореЗрдВ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдХреБрдЫ рдирдпрд╛ рд╕реАрдЦрд╛ рд╣реИред рдЕрдЧрд▓реА рдмрд╛рд░ рд╣рдо рд░рд┐рдПрдХреНрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред

рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ! рдореБрдЭреЗ рдмрддрд╛рдУ, рдХреНрдпрд╛ рдЗрд╕ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдХрд╛рд░реНрдп рдХреЛ рдкреВрд░рд╛ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдерд╛?

Source: https://habr.com/ru/post/hi446208/


All Articles