рд╡рд┐рдХрд▓реНрдк рд╕реВрдЪреА рд╕реАрдзреЗ onInput рдХрд╕реНрдЯрдо рд╣реИрдВрдбрд▓рд░ https://github.com/i-like-robots/react-tags/blob/6.0/lib/ReactTags.js#L130 рдХреЗ рдмрд╛рдж рдЕрдкрдбреЗрдЯ рдХреА рдЬрд╛рддреА рд╣реИ
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬрдм рдореИрдВ рдЗрдирдкреБрдЯ рд╣реИрдВрдбрд▓рд░ рдХреЗ рдЕрдВрджрд░ рд╕рд░реНрд╡рд░ рд╕реЗ рдкреВрдЫрддрд╛ рд╣реВрдВ рддреЛ рдЗрд╕рдореЗрдВ рдХреБрдЫ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╡рд┐рдХрд▓реНрдк рд╕реВрдЪреА рдореЗрдВ рд╣рдореЗрд╢рд╛ рдкрд┐рдЫрд▓реА рдХреЙрд▓ рдХреЗ рд╕реБрдЭрд╛рд╡реЛрдВ рдХреА рд╕реВрдЪреА рд╣реЛрддреА рд╣реИ, рдирд╡реАрдирддрдо рдХреА рдирд╣реАрдВред
рд╣рд╛рдп @yrik , рдбреЗрдЯрд╛ рдлрд╝реЗрдЪрд┐рдВрдЧ рдШрдЯрдХ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдмрд▓реНрдХрд┐ рд╕реНрд╡рдпрдВ рджреНрд╡рд╛рд░рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрдмрдХрд┐ рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдбреАрдмрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рдореБрдЭреЗ рдХреБрдЫ рд╕рд▓рд╛рд╣ рджреЗрдиреЗ рдореЗрдВ рдкреНрд░рд╕рдиреНрдирддрд╛ рд╣реЛ рд░рд╣реА рд╣реИред
#205 рдореЗрдВ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддреЗ рд╣реБрдП, рдореИрдВ рдЖрдкрдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕реЗ рдЕрдзрд┐рдХ рд╕реБрдЭрд╛рд╡ рд▓рд╛рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреВрдВрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдпрджрд┐ рдЖрдк рд╡рд░реНрддрдорд╛рди рдореЗрдВ 6 рд╕реБрдЭрд╛рд╡ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд╕рд░реНрд╡рд░ рд╕реЗ 12 рдпрд╛ 15 рд▓рд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдЗрд╕ рддрд░рд╣ suggestionsFilter
рдЕрднреА рднреА рдХреБрдЫ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдбреЗрдЯрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рддрдХ рдХрд┐ рдирдП рдкреНрд░рд╛рдкреНрдд рди рд╣реЛ рдЬрд╛рдПрдВред
рд╡рд╛рдкрд╕ рдЖрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!
рдереЛрдбрд╝реА рдЕрд▓рдЧ рд╕рдорд╕реНрдпрд╛ рд╣реИред
рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ " рдмреАрдпрд░ " рд╢рдмреНрдж рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрд╡рддрдГ рдкреВрд░реНрдг рд╣реИ
[]
)рдЕрдЧрд░ onInput
async
рд╣реЛрдЧрд╛ рддреЛ рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдпрд╛ рдЕрдЧрд░ рдХрд╕реНрдЯрдо onInput
рд╕реЗ const options = getOptions.call(this, query)
рдкрд░ рдХреЙрд▓ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ рддреЛ рдпрд╣ рднреА рдХрд╛рдо рдХрд░реЗрдЧрд╛ред
рдареАрдХ рд╣реИ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЕрдиреБрд╕рд░рдг рдХрд░рддрд╛ рд╣реВрдВ - рдЗрд╕рд▓рд┐рдП рд╕реБрдЭрд╛рд╡ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╡рд░реНрддрдорд╛рди рдХреНрд╡реЗрд░реА рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпрд╛ рдпрд╣ рд╕рд╣реА рд╣реИ?
рдореИрдВ рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЛрдб рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛
рдареАрдХ рд╣реИ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЕрдиреБрд╕рд░рдг рдХрд░рддрд╛ рд╣реВрдВ - рдЗрд╕рд▓рд┐рдП рд╕реБрдЭрд╛рд╡ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╡рд░реНрддрдорд╛рди рдХреНрд╡реЗрд░реА рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпрд╛ рдпрд╣ рд╕рд╣реА рд╣реИ?
рдмрд┐рд▓реНрдХреБрд▓! рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рд▓рдЧрднрдЧ рд╣рдореЗрд╢рд╛ рдкрд┐рдЫрд▓реА рдХреНрд╡реЗрд░реА рдХрд╛ рдкрд░рд┐рдгрд╛рдо рджрд┐рдЦрд╛рддрд╛ рд╣реИред рдЙрди рдорд╛рдорд▓реЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдЬрдм рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдХреИрд╢ рдХреА рдЬрд╛рддреА рд╣реИ рдФрд░ рддреБрд░рдВрдд рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддреА рд╣реИред
рдореИрдВ jsfiddle рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рдерд╛ рд▓реЗрдХрд┐рди рд╡рд╣рд╛рдВ lib рдХреЛ рдареАрдХ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдирд╣реАрдВ рдХрд┐рдпрд╛ред
рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ jsfiddle рдореЗрдВ рдЗрд╕ рдкреНрд▓рдЧрдЗрди рдХрд╛ рдХреЛрдИ рдореВрд▓ рдЙрджрд╛рд╣рд░рдг рд╣реИ рддреЛ рдореИрдВ рдЗрд╕реЗ рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рд╕реНрд╡рдд: рдкреВрд░реНрдг рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдмрдврд╝рд╛ рд╕рдХрддрд╛ рд╣реВрдВред
рдпрд╣ рднреА рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдореИрдВ v6 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЬреЛ рдЙрджрд╛рд╣рд░рдг рд╣реИ рд╡рд╣ рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдЬреИрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИред
"рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдЯреИрдЧ-рд╕реНрд╡рддрдГ рдкреВрд░реНрдг": "6.0.0-рдмреАрдЯрд╛.5"
рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рд░рд┐рдПрдХреНрдЯ рдХреЗ рд╣рд╛рд▓рд┐рдпрд╛ рдФрд░ рдЖрдЧрд╛рдореА рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХреЗ рдХрд╛рд░рдг componentWillReceiveProps()
рд╕реЗ рдмрдЪрдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рд╕реЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ v6 рдореЗрдВ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдореИрдВрдиреЗ рд╕реБрдЭрд╛рд╡реЛрдВ рдХреЛ рдХреЗрд╡рд▓ рдорд╛рдЙрдВрдЯ рдФрд░ onInput
рдкрд░ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЛрдмрд╛рд░рд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреА, рдЬреЛ рд╕реБрдЭрд╛рд╡реЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдирд╣реАрдВ рд╣реИред
рдЗрд╕реЗ getDerivedStateFromProps()
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд░реЗрдВрдбрд░рд░реНрд╕ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЕрдиреБрдХреВрд▓рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
static getDerivedStateFromProps (props, state) {
const options = getOptions(props, state)
return { options }
}
рдореИрдВрдиреЗ рдЗрд╕ рдкрд░ рдХреБрдЫ рдорд┐рдирдЯ рдмрд┐рддрд╛рдП рд╣реИрдВ рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдПрдХ рдЙрдкрдпреБрдХреНрдд рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдЖрдпрд╛ рд╣реВрдВ, рдиреАрдЪреЗ рджреА рдЧрдИ рдПрдиреАрдореЗрд╢рди рд╕реБрдЭрд╛рд╡ рдкреНрд░реЛрдк рдХреЛ рдЕрд╕реАрдорд┐рдд рд░реВрдк рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдФрд░ рд╡рд┐рдХрд▓реНрдк рд╕реВрдЪреА рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдЗрдирдкреБрдЯ рдХреЗ рдЕрдкрдбреЗрдЯ рд╣реЛ рд░рд╣реА рд╣реИ:
рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛рдлреА рд╕реАрдзрд╛ рдерд╛ рдЗрд╕рд▓рд┐рдП рдореИрдВ рдХреБрдЫ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░реВрдВрдЧрд╛ рдФрд░ рдПрдХ рдкреАрдЖрд░ рдмрдврд╝рд╛рдКрдВрдЧрд╛ред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ useEffect
рдХреЛ рдЗрд╕реЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╡рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░ рд╕рдХрддрд╛ рд╣реИред
useEffect(() => {
setOptions(getOptions(props, state))
}, [options]);
рдореИрдВрдиреЗ v6.0.0-beta.6
рдЬрд╛рд░реА рдХрд┐рдпрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдареАрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдореИрдВрдиреЗ рдЗрд╕ рдкрд░ рдХреБрдЫ рдорд┐рдирдЯ рдмрд┐рддрд╛рдП рд╣реИрдВ рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдПрдХ рдЙрдкрдпреБрдХреНрдд рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдЖрдпрд╛ рд╣реВрдВ, рдиреАрдЪреЗ рджреА рдЧрдИ рдПрдиреАрдореЗрд╢рди рд╕реБрдЭрд╛рд╡ рдкреНрд░реЛрдк рдХреЛ рдЕрд╕реАрдорд┐рдд рд░реВрдк рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдФрд░ рд╡рд┐рдХрд▓реНрдк рд╕реВрдЪреА рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдЗрдирдкреБрдЯ рдХреЗ рдЕрдкрдбреЗрдЯ рд╣реЛ рд░рд╣реА рд╣реИ:
рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛рдлреА рд╕реАрдзрд╛ рдерд╛ рдЗрд╕рд▓рд┐рдП рдореИрдВ рдХреБрдЫ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░реВрдВрдЧрд╛ рдФрд░ рдПрдХ рдкреАрдЖрд░ рдмрдврд╝рд╛рдКрдВрдЧрд╛ред