рдХреНрдпрд╛ рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд╕рд╛рде рд╣реБрдХ рдФрд░ рд░рд╛рдЬреНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ? рдореИрдВрдиреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдкрд░ рдХреЛрдИ рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВ рджреЗрдЦрд╛ред
рд╣реИрд▓реЛ, рд╣рд╛рдБ рдШрдЯрдХ рд╡рд░реНрдЧ рдЖрдзрд╛рд░рд┐рдд рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде рд╣реА useState()
рдХреЗ рд╕рд╛рде рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдХреГрдкрдпрд╛ рд╣реБрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдореИрдВ рдирд┐рдпрдВрддреНрд░рд┐рдд рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред
рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдХреГрдкрдпрд╛ рд╣реБрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдореИрдВ рдирд┐рдпрдВрддреНрд░рд┐рдд рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред
import React, { useState, useRef } from 'react'
export default function MyForm() {
const tagsInput = useRef(null);
const [tags, setTags] = useState([]);
const [suggestions, setSuggestions] = useState([]);
const [tagAutocompleteBusy, setTagAutocompleteBusy] = useState(false);
async function onTagInput(query) {
if (!tagAutocompleteBusy) {
setTagAutocompleteBusy(true);
const result = await fetch(`/tags/autocomplete?term=${query}`);
setSuggestions(result.data);
setTagAutocompleteBusy(false);
return result;
}
}
const onTagDelete = (i) => {
setTags(() => {
tags.splice(i, 1);
return tags;
});
}
const onTagAddition = (tag) => {
setTags(() => {
return [...tags, tag];
});
}
return (<>
<ReactTags
ref={tagsInput}
tags={tags}
suggestions={suggestions}
onDelete={onTagDelete}
onAddition={onTagAddition}
onInput={onTagInput}
/>
</>);
}
рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж @ рдХреБрд▓рд╛рд╣рд┐рди
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА