μ΄ λΌμ΄λΈλ¬λ¦¬μμ νν¬μ μνλ₯Ό μ¬μ©νλ λ°©λ²μ΄ μμ΅λκΉ? λλ λ¬Έμμμ μ΄λ€ μλ λ³΄μ§ λͺ»νλ€.
μλ
νμΈμ, μ, κ΅¬μ± μμλ ν΄λμ€ κΈ°λ° κ΅¬μ± μμμ λ§μ°¬κ°μ§λ‘ 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}
/>
</>);
}
@kulahin μμ λ₯Ό 곡μ ν μκ°μ λ΄μ£Όμ μ κ°μ¬ν©λλ€.
κ°μ₯ μ μ©ν λκΈ