Material-ui: рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд╣реБрдХ-рдлреЙрд░реНрдо рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдп рдХрд░рдирд╛

рдХреЛ рдирд┐рд░реНрдорд┐рдд 8 рдирд╡ре░ 2019  ┬╖  40рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: mui-org/material-ui

рдореИрдВ react-hook-form рдФрд░ material-ui рд╕рд╛рде рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд░реВрдк рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВ рдЗрд╕рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ:

  1. рдПрдХ рдлреЙрд░реНрдо рдЬрдорд╛ / рдорд╛рдиреНрдп рдХрд░реЗрдВ
  2. рдлрд╝реЙрд░реНрдо рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд░реАрд╕реЗрдЯ рдХрд░реЗрдВ
  3. рдбреЗрдЯрд╛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд▓реЛрдб рдХрд░реЗрдВ

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдЦрд░рд╛рдм рд╕рдорд╕реНрдпрд╛ рдЦреЛрдЬ, рдпрд╣ https://github.com/mui-org/material-ui/issues/17018 рдХреЗ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ

  • [x] рдпрд╣ рдореБрджреНрджрд╛ рдирд╡реАрдирддрдо рд░рд┐рд▓реАрдЬ рдореЗрдВ рдореМрдЬреВрдж рд╣реИред
  • [x] рдореИрдВрдиреЗ рдЗрд╕ рднрдВрдбрд╛рд░ рдХреЗ рдореБрджреНрджреЛрдВ рдХреА рдЦреЛрдЬ рдХреА рд╣реИ рдФрд░ рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ рдХрд┐ рдпрд╣ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдирд╣реАрдВ рд╣реИред

рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░

рдкрд╣рд▓рд╛ рдХрджрдо рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рд░реАрд╕реЗрдЯ рдлрд╝рдВрдХреНрд╢рди рдорд╛рди рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд╛рдордЧреНрд░реА-ui TextField рдХреА рд╕реНрдерд┐рддрд┐ "рднрд░реЗ рд╣реБрдП" рдкрд░ рдмрдиреА рд░рд╣рддреА рд╣реИ, рдФрд░ рд╢реИрд▓рд┐рдпрд╛рдБ рд╕рд╛рдлрд╝ рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддреА рд╣реИрдВред
рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдорд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рд░реАрд╕реЗрдЯ рдлрд╝рдВрдХреНрд╢рди рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдорд╛рди рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡реНрдпрд╡рд╣рд╛рд░ рд░реАрд╕реЗрдЯ рдХреЗ рд╕рдорд╛рди рд╣реЛрддрд╛ рд╣реИ (рдареАрдХ рд╣реИ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╡рд┐рдкрд░реАрдд), рдбреЗрдЯрд╛ рд▓реЛрдб рд╣реЛрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЯреЗрдХреНрд╕реНрдЯрдлрд┐рд▓реНрдб рдХреА рдЖрдВрддрд░рд┐рдХ рд╕реНрдерд┐рддрд┐ "рднрд░рд╛" рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред

рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░

рд╕рд╛рдордЧреНрд░реА-рдпреВрдЖрдИ рдЗрдирдкреБрдЯ рдХреЛ рдбреЗрдЯрд╛ рд▓реЛрдб / рд╕рд╛рдлрд╝ рд╣реЛрдиреЗ рдкрд░ рдЕрдкрдиреА рдЖрдВрддрд░рд┐рдХ рд╕реНрдерд┐рддрд┐ рдХреЛ рддрд╛рдЬрд╝рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП

рдкреНрд░рдЬрдирди рдХреЗ рд▓рд┐рдП рдХрджрдо

рдЖрдк рдЗрд╕ рдХреЛрдбрдкреЗрди рдкрд░ рддреАрди рдмрдЯрди рдЖрдЬрд╝рдорд╛ рд╕рдХрддреЗ рд╣реИрдВ:
https://codesandbox.io/s/material-demo-ywutu

  1. рд╕рдмрдорд┐рдЯ рдХрд░реЗрдВ: рдбреЗрдЯрд╛ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдорд╛рдиреНрдп рдХрд░рдиреЗ рдХрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
  2. рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд░реАрд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЯреЗрдХреНрд╕реНрдЯрдлрд┐рд▓реНрдбреНрд╕ рдХреА рд╕реНрдерд┐рддрд┐ рдЦрд╛рд▓реА рдирд╣реАрдВ рд╣реИред
  3. рдбреЗрдЯрд╛ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЯреЗрдХреНрд╕реНрдЯрдлрд┐рд▓реНрдбреНрд╕ рдХреА рд╕реНрдерд┐рддрд┐ рдирд╣реАрдВ рднрд░реА рдЬрд╛рддреА рд╣реИред

рдореИрдВрдиреЗ рд░рд┐рдПрдХреНрдЯ-рд╣реБрдХ-рдлреЙрд░реНрдо рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдХ рд╕рдорд╕реНрдпрд╛ рджрд░реНрдЬ рдХреА, рд▓реЗрдХрд┐рди рдорд╛рд▓рд┐рдХ рдиреЗ рдореБрдЭреЗ рдпрд╣рд╛рдБ рднреА рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛, рдЗрд╕рд▓рд┐рдП рд╣рдо рдпрд╣рд╛рдБ рд╣реИрдВ :)

enhancement external dependency

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореИрдВрдиреЗ waiting for users upvotes рдЯреИрдЧ рдЬреЛрдбрд╝рд╛ рд╣реИред рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рд╣рдореЗрдВ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рд▓реЛрдЧ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рдорд░реНрдерди рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рддреЛ рдХреГрдкрдпрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЕрдкрд╡реЛрдЯ рдХрд░реЗрдВ рдпрджрд┐ рдЖрдк рд╣реИрдВред рд╣рдо рдЕрдкрд╡реЛрдЯ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрдкрдиреЗ рдкреНрд░рдпрд╛рд╕ рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдВрдЧреЗред

https://npm-stat.com/charts.html?package=formik&package=react-hook-form&package=react-final-form

рд╕рднреА 40 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореИрдВрдиреЗ waiting for users upvotes рдЯреИрдЧ рдЬреЛрдбрд╝рд╛ рд╣реИред рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рд╣рдореЗрдВ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рд▓реЛрдЧ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рдорд░реНрдерди рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рддреЛ рдХреГрдкрдпрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЕрдкрд╡реЛрдЯ рдХрд░реЗрдВ рдпрджрд┐ рдЖрдк рд╣реИрдВред рд╣рдо рдЕрдкрд╡реЛрдЯ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрдкрдиреЗ рдкреНрд░рдпрд╛рд╕ рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдВрдЧреЗред

https://npm-stat.com/charts.html?package=formik&package=react-hook-form&package=react-final-form

рдмрд╣реБрдд рдЬрд░реВрд░реА: рдкреНрд░рд╛рд░реНрдердирд╛ :: рдкреНрд░рд╛рд░реНрдердирд╛ :: рдкреНрд░рд╛рд░реНрдердирд╛: рдХреЛрдИ рдХрд╛рдордХрд╛рдЬ?

рдмрд╣реБрдд рдЬрд░реВрд░реА!

рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЬрд░реВрд░рдд рд╣реИред

рд╕рдорд╛рдзрд╛рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЗрд╕рдХрд╛ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░?

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

рдЕрд░реЗ, @oliviertassinari рдЗрд╕реЗ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдордпреВрдЖрдИ TextField рдЕрдм рджреЗрд╢реА рдЗрдирдкреБрдЯ рдХреЗ рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдмреЗрд╣рддрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ! рдпрд╣ рд╡рд╛рдХрдИ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИред рдЬрдм рдЖрдк e.target.value = 'xxx' рдЖрд╣реНрд╡рд╛рди рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЯреЗрдХреНрд╕реНрдЯ рдХреЗ рдКрдкрд░ рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рдЯреЗрдХреНрд╕реНрдЯ рдУрд╡рд░рд▓реЗ рд╣реБрдЖ рдХрд░рддрд╛ рдерд╛ред рдореИрдВ

Screen Shot 2019-11-20 at 10 06 26 am

https://codesandbox.io/s/react-hook-form-conditional-fields-delete-1frsm
рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ <Switch /> рдХреЛ reset API рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд░реАрд╕реЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ред

рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдореВрд▓ рдлреЙрд░реНрдо рдЗрдирдкреБрдЯ рдПрдкреАрдЖрдИ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдлреЙрд░реНрдо рд╕рдВрдмрдВрдзрд┐рдд рдШрдЯрдХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ (рдЗрдирдкреБрдЯ рдХреЗ рд╕рдВрджрд░реНрдн рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдорд╛рди рд╕реЗрдЯ рдФрд░ рд░реАрд╕реЗрдЯ рдХрд░реЗрдВ) рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рдЯреБрдХрдбрд╝рд╛ рд╣реИ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд╣реБрдХ-рдлреЙрд░реНрдо рдЬреИрд╕реЗ рдЫреЛрдЯреЗ lib рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ рдХреБрдЫ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рд╢рд╛рдпрдж рддрдм рддрдХ рдЬрдм рддрдХ рдХрд┐ рд▓рд┐рдм рдЕрдзрд┐рдХ рд▓реЛрдХрдкреНрд░рд┐рдп рди рд╣реЛ тЭдя╕П)

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

рдЪрд┐рдпрд░реНрд╕
рд╡рд┐рдкрддреНрд░

@ bluebill1049 рдЗрд╕реЗ

рдзрдиреНрдпрд╡рд╛рдж, @oliviertassinari рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдиреЗ рдФрд░ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдПред ЁЯЩП рд╣рд╛рдБ, рдЖрдк рд╕рд╣реА рдХрд╣ рд░рд╣реЗ рд╣реИрдВ react-hook-form рдЕрднреА рднреА рд╢рд╣рд░ рдореЗрдВ рдПрдХ рдирдпрд╛ рд▓рдбрд╝рдХрд╛ рд╣реИ рдФрд░ рдпрджрд┐ рдЖрдк рдХреБрдЫ рдФрд░ рд╕рдордп рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ react-hook-form рдХреЛ рдЕрдкрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрднрд┐рдирдп рдирд╣реАрдВ рд╣реИ, рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЙрдЪрд┐рдд рд╣реИ (рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдореЗрд░реЗ рджрд┐рд▓ рдХреЗ рдЕрдВрджрд░ рднреА рдореИрдВ рдЗрд╕реЗ рдПрдордпреВрдЖрдИ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрддрд╛рдм рд╣реВрдВ, рд╣рд╛рд╣рд╛ рд╕реНрд╡рд╛рд░реНрдереА рд░рд╣рд╛)ред рдЗрд╕ рдмреАрдЪ, рдореИрдВ рдЗрдирдкреБрдЯ рдХреА рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдЙрдВрдЧрд╛ рдЬреЛ рдмреЙрдХреНрд╕ рдХреЗ рдмрд╛рд╣рд░ react-hook-form рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рд╣реИ (рд╢рд╛рдпрдж рдХреЛрдб рдФрд░ рдмреЙрдХреНрд╕ рдХреЗ рд╕рд╛рде рднреА) рдореИрдВ рдЗрд╕реЗ рдпрд╣рд╛рдВ рднреА рдкреЛрд╕реНрдЯ рдХрд░реВрдВрдЧрд╛ред

рдЕрдЧрд░ рдЪреАрдЬреЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд╣реБрдХ-рдлреЙрд░реНрдо рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИрдВ рдФрд░ рдЙрдкрдпреЛрдЧ рдмрдбрд╝рд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рддреЛ рд╢рд╛рдпрдж рд╣рдо рджреЗрд╢реА рдЗрдирдкреБрдЯ рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЬреЛ рдХрд┐ рдкрд░реНрджреЗ рдХреЗ рдкреАрдЫреЗ рд╣реБрдХ рдлреЙрд░реНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ) input рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, select , radio рдФрд░ checkbox рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рдердорд┐рдХ рдЙрдкрдпреЛрдЧ рд╣реИрдВред

рдПрдлрд╡рд╛рдИрдЖрдИ @oliviertassinari рдореИрдВ https://github.com/react-hook-form/react-hook-form-input

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдбреЗрдЯрд╛ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рдиреЗ рдФрд░ рд▓реЛрдб рдХрд░рдиреЗ рдореЗрдВ рднреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝ рд░рд╣рд╛ рд╣реИред рдХреГрдкрдпрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдЧреМрд░ рдХрд░реЗрдВред рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдЕрднреА рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рдордХрд╛рдЬ рдкреНрд░рджрд╛рди рдХрд░реЗрдВред

рдЕрд░реЗ @raikusy рдХреГрдкрдпрд╛ рдЙрд╕ рд▓рд┐рдВрдХ рдХреЛ рджреЗрдЦреЗрдВ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдКрдкрд░ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдкрдХреА рдорджрдж рдХрд░реЗрдЧрд╛ред рд▓рдВрдмреЗ рд╕рдордп рдореЗрдВ рдпрд╣ рдПрдордпреВрдЖрдИ рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рдореВрд▓ рд░реВрдк рдПрдкреАрдЖрдИ 'рд░реАрд╕реЗрдЯ' рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдФрд░ рдШрдЯрдХ 'рд░реЗрдлрд░реА' рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрджреНрдпрддрди рдореВрд▓реНрдп рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдХреА рдПрдХ рдмрдбрд╝реА рдХреАрдордд рд╣реИ рдЬреЛ рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдПрдордпреВрдЖрдИ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реА рд╕реБрд╡рд┐рдзрд╛рдПрдВ рдФрд░ рд╡рд┐рдЪрд╛рд░ рд╣реИрдВ рдЬреЛ рдЕрдзрд┐рдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдКрдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЬрдм рддрдХ рд░рд┐рдПрдХреНрдЯ рд╣реБрдХ рдлреЙрд░реНрдо рдореБрдЦреНрдпрдзрд╛рд░рд╛ рдХрд╛ рдХрд╛рдо рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддрд╛ рдпрд╛ рд▓реЛрдХрдкреНрд░рд┐рдп рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддрд╛, рддрдм рддрдХ рдПрдордпреВрдЖрдИ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдЬрд╛рдВрдЪ рд╢реБрд░реВ рдХрд░ рджреЗрдЧрд╛ред рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпреЗ рд╕рдордЭ рдореЗрдВ рдЖрдПрдВрдЧреЗ :) рд░рд┐рдПрдХреНрдЯ рд╣реБрдХ рдлреЙрд░реНрдо рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж тЭдя╕ПЁЯдйЁЯдЯЁЯП╗

рдПрдлрд╡рд╛рдИрдЖрдИ рдХрд┐ рд░реИрдкрд░ рдШрдЯрдХ рдЕрднреА рднреА рдЖрдкрдХреЗ рдлреЙрд░реНрдо рдХреЛ 0 рдкреБрди: рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдХрд░реЗрдЧрд╛ред рдХреНрдпреЛрдВрдХрд┐ рдЗрдирдкреБрдЯ рд╕реНрдЯреЗрдЯ рдЕрдкрдбреЗрдЯ рдХреЛ рд░реИрдкрд░ рдХрдВрдкреЛрдиреЗрдВрдЯ рдореЗрдВ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИредЁЯдйЁЯдЯЁЯП╗ЁЯТГ

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

@raikusy рдЖрдкрдХреЛ рд░реИрдкрд░ рдХрдВрдкреЛрдиреЗрдВрдЯ рдХреЗ рд╕рд╛рде рд░реАрд╕реЗрдЯ/рд╕реЗрдЯрд╡реИрд▓реНрдпреВ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рд░реАрд╕реЗрдЯ: рдкреВрд░реЗ рдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП -> https://react-hook-form.com/api#setValue
рд╕реЗрдЯрд╡реИрд▓реНрдпреВ: рд╡реНрдпрдХреНрддрд┐рдЧрдд рдХреЗ рд▓рд┐рдП -> https://react-hook-form.com/api#reset

рдореБрдЭреЗ RHF рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП <Slider /> рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддрд╛ред

рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрд╕рдВрдж рд╣реИ:

      <FormControl fullWidth component="fieldset" margin="normal">
        <FormLabel component="legend">Palavras</FormLabel>
        <RHFInput
          as={<Slider min={100} max={1200} step={100} valueLabelDisplay="auto" marks={marks} />}
          type="input"
          name="words"
          register={register}
          setValue={setValue}
        />
      </FormControl>

рдореБрдЭреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ:

Warning: Failed prop type: Invalid prop `value` supplied to `ForwardRef(Slider)`.
    in ForwardRef(Slider) (created by WithStyles(ForwardRef(Slider)))
    in WithStyles(ForwardRef(Slider)) (created by SetupAccountForm)
    in Unknown (created by SetupAccountForm)
    in fieldset (created by ForwardRef(FormControl))
    in ForwardRef(FormControl) (created by WithStyles(ForwardRef(FormControl)))
    in WithStyles(ForwardRef(FormControl)) (created by SetupAccountForm)
    in form (created by SetupAccountForm)
    in SetupAccountForm (created by SetupAccountPage)
    in div (created by ForwardRef(CardContent))
    in ForwardRef(CardContent) (created by WithStyles(ForwardRef(CardContent)))
    in WithStyles(ForwardRef(CardContent)) (created by SetupAccountPage)
    in div (created by ForwardRef(Paper))
    in ForwardRef(Paper) (created by WithStyles(ForwardRef(Paper)))
    in WithStyles(ForwardRef(Paper)) (created by ForwardRef(Card))
    in ForwardRef(Card) (created by WithStyles(ForwardRef(Card)))
    in WithStyles(ForwardRef(Card)) (created by SetupAccountPage)
    in div (created by ForwardRef(Grid))
    in ForwardRef(Grid) (created by WithStyles(ForwardRef(Grid)))
    in WithStyles(ForwardRef(Grid)) (created by Layout)
    in Layout (created by SetupAccountPage)
    in SetupAccountPage (created by App)
    in Route (created by App)
    in Switch (created by App)
    in Router (created by HashRouter)
    in HashRouter (created by App)
    in App (created by Root)
    in div (created by ForwardRef(Container))
    in ForwardRef(Container) (created by WithStyles(ForwardRef(Container)))
    in WithStyles(ForwardRef(Container)) (created by Root)
    in div (created by Styled(MuiBox))
    in Styled(MuiBox) (created by Root)
    in Provider (created by Root)
    in Root Button.js:233:15

@hbarcelos рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕реНрд▓рд╛рдЗрдбрд░ рд╡реИрд▓реНрдпреВ рдкреНрд░реЙрдкреНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ :( рдореИрдВ рдЗрд╕ рдкрд░ рдХреБрдЫ рдЬрд╛рдВрдЪ рдХрд░реВрдВрдЧрд╛ред рдЗрд╕ рдмреАрдЪ, рдЖрдкрдХреЛ рдХрд╕реНрдЯрдо рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ useEffect рдкрд░ рд░рдЬрд┐рд╕реНрдЯрд░ рд╣реИред

рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж @bluebill1049

рдореИрдВрдиреЗ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдмрдирд╛рдирд╛ рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛:

import React, { useEffect, useCallback, useState, useMemo } from 'react';
import t from 'prop-types';
import clsx from 'clsx';
import { makeStyles } from '@material-ui/core/styles';
import Box from '@material-ui/core/Box';
import Slider from '@material-ui/core/Slider';

const useStyles = makeStyles(theme => ({
  sliderWrapper: {},
  sliderLabel: {
    marginTop: theme.spacing(1),
    marginBottom: theme.spacing(0.5),
    color: theme.palette.primary.main,
  },
}));

function CustomSlider({
  register,
  unregister,
  setValue,
  name,
  rules,
  defaultValue,
  valueLabelAs,
  formatLabel,
  ...rest
}) {
  const cl = useStyles();

  const [currentValue, setCurrentValue] = useState(defaultValue);

  useEffect(() => {
    register({ name });
    return () => unregister(name);
  }, [defaultValue, name, register, setValue, unregister]);

  const valueLabel = useMemo(() => {
    if (!valueLabelAs) {
      return null;
    }

    return React.cloneElement(
      valueLabelAs,
      { className: clsx(valueLabelAs.props.className, cl.sliderLabel) },
      formatLabel(currentValue)
    );
  }, [cl.sliderLabel, currentValue, formatLabel, valueLabelAs]);

  const handleChange = useCallback(
    (_, value) => {
      setValue(name, value);
      setCurrentValue(value);
    },
    [name, setValue]
  );

  return (
    <React.Fragment>
      {valueLabel}
      <Box className={cl.sliderWrapper}>
        <Slider {...rest} onChange={handleChange} defaultValue={defaultValue} />
      </Box>
    </React.Fragment>
  );
}

CustomSlider.defaultProps = {
  rules: {},
  defaultValue: '',
  valueLabelAs: null,
  formatLabel: v => v,
};

CustomSlider.propTypes = {
  register: t.func.isRequired,
  unregister: t.func.isRequired,
  setValue: t.func.isRequired,
  name: t.string.isRequired,
  rules: t.object,
  defaultValue: t.oneOfType([t.number, t.string]),
  valueLabelAs: t.node,
  formatLabel: t.func,
};

export default CustomSlider;

рдпрд╣ рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗ рдЕрдиреБрд░реВрдк рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдЗрд╕рдХреА рднреА рдмрд╣реБрдд рдЬрд░реВрд░рдд рд╣реИ

рд▓рдВрдмреЗ рд╕рдордп рдореЗрдВ рдпрд╣ рдПрдордпреВрдЖрдИ рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рдореВрд▓ рд░реВрдк рдПрдкреАрдЖрдИ 'рд░реАрд╕реЗрдЯ' рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдФрд░ рдШрдЯрдХ 'рд░реЗрдлрд░реА' рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрджреНрдпрддрди рдореВрд▓реНрдп рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред

@ bluebill1049 рдХреНрдпрд╛ рдпрд╣ рд░рд┐рдПрдХреНрдЯ рдпрд╛ рд░рд┐рдПрдХреНрдЯ-рд╣реБрдХ-рдлреЙрд░реНрдо рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ? рдПрдХ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд╣реБрдХ-рдлреЙрд░реНрдо рдХреЗ рд╕рд╛рде рдЗрдирдкреБрдЯ рд╕реНрдерд┐рддрд┐ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд▓рд┐рдП "рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛" рдХреИрд╕реЗ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП?
рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдореИрдВ рдПрдХ рдХрд╕реНрдЯрдо рдЗрдирдкреБрдЯ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рд░рд┐рдПрдХреНрдЯ рдбреЗрд╡рд▓рдкрд░ рд╣реВрдВ, рдФрд░ рдЬрдм рдпрд╣ рднрд░рд╛/рдЦрд╛рд▓реА рд╣реЛ рддреЛ рдореИрдВ рддрддреНрд╡ рдХреЛ рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ рд╕реНрдЯрд╛рдЗрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдореБрдЭреЗ рдЗрд╕реЗ рдХреИрд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП? рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рднреА рдкрд░рд┐рд╡рд░реНрддрди рдШрдЯрдирд╛ рдХрднреА рднреА рд╕рдХреНрд░рд┐рдп рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред

рдЬрдм рдЖрдкрдХреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд░рд┐рдПрдХреНрдЯ рдХреЗ рдШреЛрд╖рдгрд╛рддреНрдордХ рдореЙрдбрд▓ рдХреЗ "рдмрд╛рд╣рд░" рдЗрдирдкреБрдЯ рдорд╛рди рдХреЛ рдмрджрд▓ рджреЗрддреА рд╣реИ, рддреЛ рдХреНрдпрд╛ рдЖрдкрдиреЗ рдПрдХ рдкрд░рд┐рд╡рд░реНрддрди рдШрдЯрдирд╛ рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рд╣реИ? рдЬреИрд╕реЗ рдпрд╣ @ рдЯреЗрд╕реНрдЯ-рд▓рд╛рдЗрдмреНрд░реЗрд░реА/рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ?

рдпрд╣ рд╕рд╛рдордЧреНрд░реА-рдпреВрдЖрдИ рдШрдЯрдХреЛрдВ рдХреЗ рд╕рдорд░реНрдерди рдХреЛ рд╕рдХреНрд╖рдо рдХрд░реЗрдЧрд╛ рдЬреЛ рдореВрд▓ рдЗрдирдкреБрдЯ рддрддреНрд╡реЛрдВ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ, рдЕрдиреНрдп рдХреЗ рд▓рд┐рдП, рд╕реНрд▓рд╛рдЗрдбрд░ рдХреА рддрд░рд╣, рдПрдХ рдХрд╕реНрдЯрдо рд░реИрдкрд░ рдХреА рдЕрднреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рд╕реНрд▓рд╛рдЗрдбрд░ рдХрд╛ рдПрдХ рдореВрд▓реНрдп рдкреНрд░реЛрдк рд╣реИ рд▓реЗрдХрд┐рди рдСрдирдЪреЗрдВрдЬ рдХрд╛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдореВрд▓ рдЗрдирдкреБрдЯ рд╕реЗ рдЕрд▓рдЧ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХреАрдХрд░рдг рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рджреЗрдЦрдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрдиреНрдп рдлреЙрд░реНрдо рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИ: # 15585ред


рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЗрддрдиреЗ рд╕рд╛рд░реЗ рд╡реЛрдЯ рдХреНрдпреЛрдВ рдорд┐рд▓реЗ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ ЁЯЩГ:

Capture dтАЩe╠Бcran 2019-12-07 a╠А 20 41 31
https://react-hook-form.com/advanced-usage#ControlledmixedwithUnрдирд┐рдпрдВрддреНрд░рд┐рдд рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕

рдЕрд░реЗ @oliviertassinari , рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдХрд░реАрдм рд╕реЗ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж

рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдореИрдВ рдПрдХ рдХрд╕реНрдЯрдо рдЗрдирдкреБрдЯ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рд░рд┐рдПрдХреНрдЯ рдбреЗрд╡рд▓рдкрд░ рд╣реВрдВ, рдФрд░ рдЬрдм рдпрд╣ рднрд░рд╛/рдЦрд╛рд▓реА рд╣реЛ рддреЛ рдореИрдВ рддрддреНрд╡ рдХреЛ рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ рд╕реНрдЯрд╛рдЗрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдореБрдЭреЗ рдЗрд╕реЗ рдХреИрд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП? рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рднреА рдкрд░рд┐рд╡рд░реНрддрди рдШрдЯрдирд╛ рдХрднреА рднреА рд╕рдХреНрд░рд┐рдп рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред

рдореИрдВ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рд╕реАрдПрд╕рдПрд╕ рдЪрдпрдирдХрд░реНрддрд╛ рдХреА рддрд▓рд╛рд╢ рдХрд░реВрдВрдЧрд╛ рдЬреЛ рдореВрд▓ рдЗрдирдкреБрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: рдПрдХ рддрддреНрд╡ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдЦрд╛рд▓реА рдореВрд▓реНрдп рд╣реИ рдФрд░ рдПрдХ рд╢реИрд▓реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВред рдПрдХ рд╡рд┐рдХрд▓реНрдк рдореИрдВ рдЦрд╛рд▓реА рдореВрд▓реНрдп рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд╣реБрдХ-рдлреЙрд░реНрдо watch рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛ рдФрд░ prop (рдореЗрд░реЗ рд▓рд┐рдкрдЯреЗ рдЗрдирдкреБрдЯ рдШрдЯрдХ рдХреЗ рд╕рд╛рде) рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд╕ рдХрд░реВрдВрдЧрд╛ред

рдЬрдм рдЖрдкрдХреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд░рд┐рдПрдХреНрдЯ рдХреЗ рдШреЛрд╖рдгрд╛рддреНрдордХ рдореЙрдбрд▓ рдХреЗ "рдмрд╛рд╣рд░" рдЗрдирдкреБрдЯ рдорд╛рди рдХреЛ рдмрджрд▓ рджреЗрддреА рд╣реИ, рддреЛ рдХреНрдпрд╛ рдЖрдкрдиреЗ рдПрдХ рдкрд░рд┐рд╡рд░реНрддрди рдШрдЯрдирд╛ рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рд╣реИ? рдЬреИрд╕реЗ рдпрд╣ @ рдЯреЗрд╕реНрдЯ-рд▓рд╛рдЗрдмреНрд░реЗрд░реА/рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ?

рд╣рд╛рдБ, рд╣рдо рдЗрд╕реЗ рдХрд╛рдлреА рд╣рдж рддрдХ react-hook-form-input рддрд╣рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдореИрдВ

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

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

рдирд┐рд╖реНрдХрд░реНрд╖:

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдЕрдкрдиреА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рд▓рд┐рдВрдХ рдХреЛ рд╣рдЯрд╛ рджреВрдВрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреНрдпрд╛ рдореИрдВ рдЗрд╕ рдкреЗрдЬ рдХреЛ react-hook-form-input рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

https://material-ui.com/components/text-fields/#complementary -projects

рд╣рд╛рдБ, рд╣рдо рдЗрд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд╣реБрдХ-рдлреЙрд░реНрдо-рдЗрдирдкреБрдЯ рдХреЗ рддрд╣рдд рдмрд╣реБрдд рдЬреНрдпрд╛рджрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

@ bluebill1049 рдпрд╣ рдореЗрд░реЗ рд╕реБрдЭрд╛рд╡ рдХреЗ рд╡рд┐рдкрд░реАрдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИред рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛ рд╕рдордЭрддрд╛ рд╣реВрдВ:

  • рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд╣реБрдХ-рд░реВрдк:

    1. рдпрд╣ рдЗрдирдкреБрдЯ рдбреЛрдо рдиреЛрдбреНрд╕ рдХрд╛ рдЯреНрд░реИрдХ рд░рдЦрддрд╛ рд╣реИред рдЬрдм рдЗрд╕реЗ рдорд╛рди рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдпрд╣ input.value = 'x' ред рдпрд╣ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЬрд╛рдирдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрдирдкреБрдЯ рдорд╛рди рдмрджрд▓ рдЧрдпрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЛрдИ рдкрд░рд┐рд╡рд░реНрддрди рдШрдЯрдирд╛ рдЯреНрд░рд┐рдЧрд░ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ ред

    2. рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╣реБрдХ рдлрд╛рд░реНрдо рдХреА рдЬрд░реВрд░рдд рдЗрдирдкреБрдЯ рдореВрд▓реНрдп рдмрджрд▓рд╛рд╡реЛрдВ рдХреЛ рд╕реБрдирдиреЗ, рдпрд╣ рдПрдХ "рдЗрдирдкреБрдЯ" рдШрдЯрдирд╛ рд╢реНрд░реЛрддрд╛ рд╕реЗрдЯ рдЗрдирдкреБрдЯ рдкрд░ ред рдпрд╣ рдЖрдкрдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рд╡рд░реНрддрди рдХрд┐рд╕реА рднреА рдШрдЯрдирд╛ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬрдм рдорд╛рди рдПрдХ рдирд┐рдпрдВрддреНрд░рд┐рдд рдЗрдирдкреБрдЯ рд╕реЗ рдмрджрд▓рддрд╛ рд╣реИ ред

  • рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд╣реБрдХ-рдлреЙрд░реНрдо-рдЗрдирдкреБрдЯ: рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд╣реБрдХ-рдлреЙрд░реНрдо (i рдФрд░ ii) рдХреА рджреЛ рдкрд┐рдЫрд▓реА рд╕реАрдорд╛рдУрдВ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдирдкреБрдЯ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред

рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ 1. рдпрд╣ рдмрд╣реБрдд рдХрдо рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд╣реБрдХ-рдлреЙрд░реНрдо рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЦреЗрд▓реЗрдВрдЧреЗ рдФрд░ 2. рд╡рд╣ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд╣реБрдХ-рдлреЙрд░реНрдо рдирд┐рдпрдВрддреНрд░рд┐рдд рдФрд░ рдЫрджреНрдо-рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рдЗрдирдкреБрдЯ рдХреЗ рд╕рд╛рде рдмреЙрдХреНрд╕ рдХреЗ рдмрд╛рд╣рд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ (рд╡реЗ рдЬреЛ рдмрджрд▓рддреЗ рд╣реИрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдФрд░ рд╡реЗ рдЬреЛ рдХреЗрд╡рд▓ рдСрди рдЪреЗрдВрдЬ рдХреЛ рд╕реБрдирддреЗ рд╣реИрдВ), рдореИрдВ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐:

  1. рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд╣реБрдХ-рдлреЙрд░реНрдо рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдФрд░ рдЫрджреНрдо рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреИрдЪ рдХрд░рддрд╛ рд╣реИред рдореВрд▓ рд░реВрдк рд╕реЗ, рдЖрдкрдХреЛ i рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ii. (рд▓рд┐рдВрдХ рдХрд┐рдП рдЧрдП рдХреЛрдбрд╕реИрдВрдбрдмреЙрдХреНрд╕ рдореЗрдВ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди рджреЗрдЦреЗрдВ: рдбрд┐рд╕реНрдкреИрдЪ + рдбрд┐рдлрд╛рдЗрдирдкреНрд░реЙрдкрд░реНрдЯреА)ред
  2. рд╕рд╛рдордЧреНрд░реА-рдпреВрдЖрдИ рдЬрд░реВрд░рдд рдкрдбрд╝рдиреЗ рдкрд░ (#15585 рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд) рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд╣реБрдХ-рдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдПрдбреЗрдкреНрдЯрд░ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдореБрджрд╛рдп рд╕реЗ рд╕рд╣рд╛рдпрддрд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред
  3. рд╣рдо рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░рддреЗ рд╣реИрдВ

рдзрдиреНрдпрд╡рд╛рдж, рд╡рд┐рд╕реНрддреГрдд рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП @oliviertassinari ред рдореИрдВ рдЖрдкрдХреЗ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдФрд░ рдЬрд╛рдВрдЪ рдХрд░реВрдВрдЧрд╛ :)

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

рдХреЗрд╡рд▓ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:

  • рдСрди рдЪреЗрдВрдЬ рдЗрд╢реНрдпреВ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, https://codesandbox.io/s/heuristic-galileo-1wf8c рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рдмрдЯрди => рдорд┐рд╕рд┐рдВрдЧ рд▓реЙрдЧ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдЕрдм, https://codesandbox.io/s/silly-allen-72zz7 рдкрд░
  • рдореВрд▓реНрдп рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдореБрджреНрджреЗ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, https://codesandbox.io/s/elastic-agnesi-osuuy рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рдмрдЯрди => рд▓рд╛рдкрддрд╛ рд▓реЙрдЧ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдЕрдм, https://codesandbox.io/s/sparkling-rain-3rebh рдкрд░

рддреЛ рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд╣реБрдХ-рд░реВрдк рдореЗрдВ рд╣рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо рдЗрд╕рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░реЗрдВрдЧреЗ рдпрджрд┐ рдЖрдк рдЗрди рд╕реБрдзрд╛рд░реЛрдВ рдХреЛ рдЖрдЬрдорд╛ рд╕рдХрддреЗ рд╣реИрдВ/рддреИрдирд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдиреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рд╕реЗ рд╣рдорд╛рд░реА рдУрд░ рд╕реЗ рджреЛрд╖ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ ред

рдЗрди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдкрдХреА рдлреЙрд░реНрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдХрд░реНрд╖рдг рдореЗрдВ рдорджрдж рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП, рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░реЗрдВрдЧреЗ: рдбреАред

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

рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рдФрд░ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХреЗ рдмреАрдЪ рд╕реНрд╡рд┐рдЪ рдХрд░рддрд╛ рд╣реИ рддреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЪреЗрддрд╛рд╡рдиреА рджреЗрддреА рд╣реИред рдореБрдЭреЗ рдЖрдкрдХреА рдмрд╛рдд рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖ рд░рд╣реА рд╣реИред

рддреЛ рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд╣реБрдХ-рд░реВрдк рдореЗрдВ рд╣рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо рдЗрд╕рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░реЗрдВрдЧреЗ рдпрджрд┐ рдЖрдк рдЗрди рд╕реБрдзрд╛рд░реЛрдВ рдХреЛ рдЖрдЬрдорд╛ рд╕рдХрддреЗ рд╣реИрдВ/рддреИрдирд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдиреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рд╕реЗ рд╣рдорд╛рд░реА рдУрд░ рд╕реЗ рджреЛрд╖ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ ред

рдирд╣реАрдВ, рдореИрдВ рдПрдордпреВрдЖрдИ рдХреЛ рджреЛрд╖ рджреЗ рд░рд╣рд╛ рд╣реВрдВ, рдореБрдЭреЗ рдПрдордпреВрдЖрдИ рдкрд╕рдВрдж рд╣реИ (рдореЗрд░реЗ рдЫреЛрдЯреЗ рд╕рд┐рддрд╛рд░реЗ рдХреЗ рд╕рд╛рде я╕П)ред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд╣реБрдХ-рд░реВрдк рд╢рд╣рд░ рдореЗрдВ рдПрдХ рдирдпрд╛ рд▓рдбрд╝рдХрд╛ рд╣реИ, рдореИрдВ рд╡рд┐рд╢реЗрд╖ рдореБрджреНрджреЗ рдкрд░ рдХреБрдЫ рдзреНрдпрд╛рди рдпрд╛ рдЧрддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рдерд╛ред рдЕрдЧрд░ рдЖрдкрдХреЛ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ (рджреЛрд╖) рддреЛ рдореИрдВ рдорд╛рдлреА рдорд╛рдВрдЧрддрд╛ рд╣реВрдВред рдЖрдкрдХреА рдорджрдж рдФрд░ рдЬрд╛рдВрдЪ рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред

image
(рджреЛрд╖ рдирд╣реАрдВ)

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

рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рдФрд░ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХреЗ рдмреАрдЪ рд╕реНрд╡рд┐рдЪ рдХрд░рддрд╛ рд╣реИ рддреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЪреЗрддрд╛рд╡рдиреА рджреЗрддреА рд╣реИред рдореБрдЭреЗ рдЖрдкрдХреА рдмрд╛рдд рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖ рд░рд╣реА рд╣реИред

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ рдореЗрд░рд╛ рдорддрд▓рдм рдирд┐рдпрдВрддреНрд░рд┐рдд рдШрдЯрдХ рдерд╛ :) рдореЗрд░реА рдЯрд┐рдкреНрдкрдгреА рддрдп рдХреА

@ bluebill1049 рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛ :)

рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж, @oliviertassinari (рдЖрдк рдмрд╣реБрдд рджрдпрд╛рд▓реБ рд╣реИрдВ)

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╕рд╛рдордЧреНрд░реА-рдпреВрдЖрдИ рд╕рдорд╛рди рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕реБрдзрд╛рд░реЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдП, рдЗрд╕рдореЗрдВ рджреЛ рдХрдорд┐рдпрд╛рдВ рд╣реЛрдВрдЧреА: 1. рдпрд╣ рдХреЗрд╡рд▓ рд╕рд╛рдордЧреНрд░реА-рдпреВрдЖрдИ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдЧрд╛, рдЙрд╕реА рдкреНрд░рдпрд╛рд╕ рдХреЛ рдмрд╛рд░-рдмрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред 2. рдЗрди "рд╣реИрдХреНрд╕" рдХрд╛ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд╣реБрдХ-рд░реВрдк рдореЗрдВ рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкреБрд╕реНрддрдХрд╛рд▓рдп рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдП рдЧрдП рдЯреНрд░реЗрдбрдСрдлрд╝ рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ (рдореБрд╣рд╛рд╡рд░реЗрджрд╛рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдПрдкреАрдЖрдИ рдХреЛ рдЫреЛрдбрд╝рдХрд░)ред

рдЕрд░реЗ рджреЛрд╕реНрддреЛрдВ, рдЕрдЧрд░ рдХреЛрдИ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХрджрдо рд░рдЦрддрд╛ рд╣реИред (рд╣рдо рдХреБрдЫ рд╕рдордп рд╕реЗ рдЧреБрдкреНрдд рд░реВрдк рд╕реЗ рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ )

рд╣рдо рдЖрд░рдПрдЪрдПрдл рдХреЗ рд▓рд┐рдП рдЕрдЧрд▓реЗ рдкреНрд░рдореБрдЦ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдХреБрдЫ рдЧреБрдгрд╡рддреНрддрд╛ рд╡рд╛рд▓реЗ рдЬреАрд╡рди рдЕрджреНрдпрддрди рд╣реИрдВ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдШрдЯрдХ рдХреЗ рдЖрд╕рдкрд╛рд╕ред рдпреВрдЖрдИ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдмреЗрд╣рддрд░ рд╕рдкреЛрд░реНрдЯ рд╣реЛрдЧрд╛ред рдирд┐рдореНрди рдХреЛрдб рдирд┐рдпрдВрддреНрд░рд┐рдд UI рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП setValue рдФрд░ defaultValue рдХреЛ рд╣рд▓ рдХрд░реЗрдЧрд╛, рдЬрдмрдХрд┐ рдЖрдкрдХреЗ рдРрдк/рдлреЙрд░реНрдо рд╕реНрддрд░ рдкрд░ рдиреНрдпреВрдирддрдо рд░реА-рд░реЗрдВрдбрд░ рдмрдирд╛рдП рд░рдЦреЗрдЧрд╛, рд░реА-рд░реЗрдВрдбрд░ рдЖрдкрдХреЗ рдЗрдирдкреБрдЯ рдШрдЯрдХ рд╕реНрддрд░ рдкрд░ рдЕрд▓рдЧ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдЬрдм рдЖрдк RHF рдХреЗ V4 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реЛрдВ рддреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣реЛрдЧрд╛ред

import TextField from '@material-ui/core/TextField';

const { control } = useForm();

<Controller as={TextField} control={control} name="firstName" rules={{ required: true }} />

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

Screen Shot 2020-02-11 at 3 21 25 AM

ezgif com-video-to-gif

рддреНрд╡рд░рд┐рдд рдиреЛрдЯ : рдореИрдВ рдмрд┐рдирд╛ рдХрд┐рд╕реА рджреЗрд░реА рдХреЗ рддреЗрдЬреА рд╕реЗ рдЯрд╛рдЗрдк рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рд╡реЗ рдКрдкрд░ рдмрддрд╛рдП рдЧрдП рдХрд╛рд░рдг рдХреЗ рдХрд╛рд░рдг рднрд╛рдЧ рдореЗрдВ рджреЗрд░реА рдХрд░рддреЗ рд╣реИрдВред

рд╣рд╛рдп рджреЛрд╕реНрддреЛрдВ, рдпрд╣ рд╕рдорд╕реНрдпрд╛ рддрдм рднреА рдмрдиреА рд░рд╣рддреА рд╣реИ рдЬрдм рдореИрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд╣реБрдХ-рдлреЙрд░реНрдо рд╕реЗ рдирд┐рдпрдВрддреНрд░рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ :(
рдХреНрдпрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ? рдпрд╛ рдореИрдВ рдЗрд╕реЗ рдЧрд▓рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдБ?

рдЙрджрд╛рд╣рд░рдг: https://codesandbox.io/s/example-muitextfield-setvalue-with-react-hook-form-kqwq0?file=/index.js

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдПрдХ рд╕рдорд╛рдзрд╛рди рдЬрд┐рд╕рдХрд╛ рдореИрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рд╡рд╣ рд╣реИ InputLabelProps={isEdition && { shrink: isEdition }}
рдЬрд╣рд╛рдВ isEdition рдПрдХ рдзреНрд╡рдЬ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рд╕рдВрдкрд╛рджрди рд╕реНрдХреНрд░реАрди рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

@Luccasoli рдХреГрдкрдпрд╛ рдбреЙрдХреНрдЯрд░ рдХреЛ рджреЗрдЦреЗрдВ: https://react-hook-form.com/api#Controller

рдПрдордпреВрдЖрдИ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ: https://codesandbox.io/s/react-hook-form-controller-079xx

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ @ bluebill1049 , рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдРрд╕реА рдХреЛрдИ рд╕реНрдерд┐рддрд┐ рдирд╣реАрдВ рдорд┐рд▓реА, рдФрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ рдореБрдЭреЗ рдРрд╕рд╛ рдХреЛрдИ рдкреНрд░реЛрдк рдирд╣реАрдВ рдорд┐рд▓рд╛ рдЬреЛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рд╕реЗ рд╣рд▓ рдХрд░ рд╕рдХреЗ :(

Screen Shot 2020-04-15 at 9 21 56 am

@Luccasoli defaultValue рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ

рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдХреА:

  • рдореИрдВрдиреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдиреЛрдВ рдХреЛ useForm() рдПрдХ рд░рд╛рдЬреНрдп рдорд╛рди рдХреЗ рдЕрдВрджрд░ рдмрджрд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛, рдФрд░ рдЙрд╕ рд░рд╛рдЬреНрдп рдХреЛ useEffect() рдХреЗ рдЕрдВрджрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛
  • рдореИрдВрдиреЗ рдПрдХ рд╣реА рд╡рд┐рдЪрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рд╕реАрдзреЗ рдкреНрд░реЛрдк рдХрд░реЗрдВ

рджреЛрдиреЛрдВ рддрд░реАрдХреЛрдВ рд╕реЗ, рдЯреЗрдХреНрд╕реНрдЯрдлрд┐рд▓реНрдб рдпрд╣ рдирд╣реАрдВ рдкрд╣рдЪрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдЗрдирдкреБрдЯ рднрд░рд╛ рд╣реБрдЖ рд╣реИ, рдФрд░ рд▓реЗрдмрд▓ рдЗрдирдкреБрдЯ рдкрд░ рд░рд╣рддрд╛ рд╣реИ

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

рдореИрдВ рдПрдХ "рд▓реЛрдбрд┐рдВрдЧ" рдбрд┐рдлреЙрд▓реНрдЯ рд╡реИрд▓реНрдпреВ рднреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд╕рдХрддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЦрд╛рд▓реА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдореВрд▓реНрдп рдЕрднреА рднреА рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рд▓рдЧрддрд╛ рд╣реИ, рдХреНрдпрд╛ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ?

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рд╣рд╛рдБ, рдЦрд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ ... рд╣рд╛рд╣рд╛рд╣рд╛, рдзрдиреНрдпрд╡рд╛рдж, рдореИрдВрдиреЗ рдХрд╕рдо рдЦрд╛рдИ рдереА рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдпрд╣ рдХреЛрд╢рд┐рд╢ рдХреА рдереА, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИред

@ bluebill1049 рдореИрдВ рдЬреЛ рд╕рдорд╕реНрдпрд╛ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ рдЙрд╕реЗ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдЖрдкрдХреЗ рдбреЗрдореЛ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рд╣реЛрдЧрд╛ред
https://codesandbox.io/s/react-hook-form-controller-n196b?file=/src/index.js
рдПрдХ рдмрдЯрди рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдЪреЗрдХрдмреЙрдХреНрд╕ рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдиреНрдп рд╕рднреА рдлрд╝реАрд▓реНрдб рдЬрд┐рдирдХрд╛ рдореИрдВрдиреЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ рд╡реЗ рдЪреЗрдХрдмреЙрдХреНрд╕ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдЕрдкреЗрдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред

рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдпрд╣ рд╕реИрдВрдб рдмреЙрдХреНрд╕ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд╛рдордЧреНрд░реА UI рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реИ - рд╕реНрд▓рд╛рдЗрдбрд░, рдЪрдпрди рдФрд░ рдХреБрдЫ рдЕрдиреНрдп рдХреЗ рд▓рд┐рдП рдЙрджрд╛рд╣рд░рдг рд╣реИрдВред
https://codesandbox.io/s/react-hook-form-controller-079xx?file=/src/index.js

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

finaiized picture finaiized  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

TimoRuetten picture TimoRuetten  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

chris-hinds picture chris-hinds  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

zabojad picture zabojad  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ericraffin picture ericraffin  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ