React-tags: рдЗрдирдкреБрдЯ рдШрдЯрдХ рдкрд░ рдЪреЗрддрд╛рд╡рдиреА

рдХреЛ рдирд┐рд░реНрдорд┐рдд 18 рд╕рд┐рддре░ 2018  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: i-like-robots/react-tags

рдореБрдЭреЗ ReactTags рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЪреЗрддрд╛рд╡рдиреА рдорд┐рд▓ рд░рд╣реА рд╣реИ:

Warning: Failed prop type: You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`.
    in input (created by Input)
    in div (created by Input)
    in Input (created by ReactTags)
    in div (created by ReactTags)
    in div (created by ReactTags)

рдпрд╣рд╛рдБ рдЬреЛ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ рдЙрд╕рд╕реЗ рд╣рдореЗрдВ рд╢рд╛рдпрдж https://github.com/i-like-robots/react-tags/blob/master/lib/Input.js#L78 рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП:
defaultValue={query}

рддреБрдо рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реЛ?
рдзрдиреНрдпрд╡рд╛рдж!

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

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

noOp() {
    // does nothing
}

<ReactTags
tags={this.state.tags}
suggestions={this.state.suggestions}
handleAddition={this.handleTagAddition}
handleDelete={this.handleTagDelete}
inputAttributes={{ onChange: this.noOp }}
/>

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

рдореБрдЭреЗ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдХреЛрдИ рд╕реБрдЭрд╛рд╡?

рдореБрдЭреЗ рдбрд░ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИ, рдХреНрдпрд╛ рдЖрдк рдореБрдЭреЗ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдХрд┐рд╕ рд░рд┐рдПрдХреНрдЯ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

рдореИрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ 16.3.2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ

@ i-like-robots рдореБрдЭреЗ рднреА рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рд╣реИред

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

noOp() {
    // does nothing
}

<ReactTags
tags={this.state.tags}
suggestions={this.state.suggestions}
handleAddition={this.handleTagAddition}
handleDelete={this.handleTagDelete}
inputAttributes={{ onChange: this.noOp }}
/>

рдпрд╣ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдореБрджреНрджрд╛ рд╣реИ, рдХреБрдЫ рд╕рд╛рд▓ рдкрд╣рд▓реЗ https://github.com/facebook/react/issues/1118 рдореЗрдВ рдЗрд╕ рдкрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рдереА (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВрдиреЗ рдпрд╣ рдЪреЗрддрд╛рд╡рдиреА рдХрднреА рдирд╣реАрдВ рджреЗрдЦреА рд╣реИ, 16.3.2 рд╕рд╣рд┐рдд рд░рд┐рдПрдХреНрдЯ рдХреЗ рдХрд┐рд╕реА рднреА рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде! )

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

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ defaultValue рдХрд░рдирд╛ рд╕рд╣реА рд╕рдорд╛рдзрд╛рди рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреЗ рдЕрдирдкреЗрдХреНрд╖рд┐рдд рдкрд░рд┐рдгрд╛рдо рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ (рджреЗрдЦреЗрдВ https://github.com/i-like-robots/react-tags/pull/139#issuecomment-431006214 ) рд▓реЗрдХрд┐рди рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдХрдИ рдЕрдиреНрдп рд╕рдорд╛рдзрд╛рди рдЙрдкрд▓рдмреНрдз рд╣реИрдВред

рдЗрд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рджреЗрдЦрдиреЗ рдкрд░ рдореИрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕ рдЪреЗрддрд╛рд╡рдиреА рдореЗрдВ 5 рд╢рд░реНрддреЗрдВ рд╣реИрдВ:

https://github.com/facebook/react/blob/b87aabdfe1b7461e7331abb3601d9e6bb27544bc/packages/react-dom/src/shared/ReactControlledValuePropTypes.js#L32 -L46

рдпрд╣ рдкрд╣рд▓реА рд╢рд░реНрдд рд╣реИ рдЬреЛ рдореБрдЭреЗ рд░реВрдЪрд┐ рджреЗрддреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдпрд╣ _ рдЪрд╛рд╣рд┐рдП_ true рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ state.query рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдПрдХ рдЦрд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИред рдЗрд╕рд▓рд┐рдП рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЬрд▓реНрджреА рд╡рд╛рдкрд╕ рдЖрдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрдирдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЪреЗрддрд╛рд╡рдиреА рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЗрд╕рд▓рд┐рдП рдЗрд╕ рдЪреЗрддрд╛рд╡рдиреА рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрджрд▓рдирд╛ рдкрдбрд╝рд╛ (https://github.com/i-like-robots/react-tags/blob/master/lib/ReactTags.js#L35) рдЗрд╕реЗ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдореВрд▓реНрдп рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдПред

рдХреНрдпрд╛ рдЖрдк рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬреЛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рдмрд╛рд░реАрдХреА рд╕реЗ рджреЗрдЦ рд╕рдХреВрдВ?

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