Здравствуйте!
Подскажите, пожалуйста, почему при первом монтировании useEffect выводит в консоль сначала false, а затем true, хотя deferredInput не изменяется. Как сделать, так чтобы onInputChanged, вызывался только при изменении deferredInput?
const Search = ({onInputChanged,placeholder="",className=""}:{onInputChanged:(input:string)=>any,className?:string,placeholder?:string})=>{
const isMounted = useRef(false)
const [searchInput, setSearchInput] = useState("")
const deferredInput = useDeferredValue(searchInput)
useEffect(()=>{
console.log(isMounted.current)
if (isMounted.current){
onInputChanged(deferredInput)
}
else {
isMounted.current = true
}
},[deferredInput])
return (
<Input
placeholder={placeholder ? placeholder:"Найдётся всё..."}
value={searchInput}
onChange={(e)=>setSearchInput(e.target.value)}
className={"w-full"+className}
/>
)
}
export default Search;