2024/07 3

[typescript][react] string' 형식의 매개 변수가 포함된 인덱스 시그니처를 찾을 수 없습니다.

object로 된 요소를 바꾸려는데 저런 멘트가 뜬다면 타입으로 확실하게 명시해주면 된다. 1. 타입 정리interface Isomething { // 이거 [key: string]: boolean;}const [something, setSomething] = useState({ a: false, b: true,}) 여담으로 react에서 set함수로 변경할때 object를 어떻게 일괄/일부 변경하는지 적어두겠음. const [something, setSomething] = useState({ all: false, a: false, b: true,});// all의 상태에 따라 싹다 토글. 전체선택,해제 같은거에서 씀.const toggleAll = () => { const keyy = Ob..

[react][react-query] useMutation 쓰는 법

'() => Promise' 유형에 'UseMutationOptions' 유형과 공통적인 속성이 없습니다.내지invailed hook 에러이라는 에러가 뜨는데 아니 타입이 유동적일수도 있어서 그런데 왜 자꾸 이러시죠? useEffect에 바로 안쓰고 함수로 감아줬는데도 왜이러시죠?  1. 이렇게 쓰기const App = () => { useEffect(() => { mutate(); // 한번 불러주기 }, []) const run = () => { // 뭔가 데이터 가져오는 함수 return res.data; } const { mutate } = useMutation({ mutationFn: run, onSuccess: (data: any) => { }, ..

라이브러리 2024.07.03

[javascript] setTimeout을 clearTimeout할 때

setTimeout이 여러개 있는 경우 한 변수에 담아 forEach등을 이용하여 지우는 방법이 있다. 그러나 가끔 이 방법이 간헐적으로 되지 않아서 이리저리 찾다가 해결방법을 기록함. 1. 객체로 저장var timer = {};timer.t1 = setTimeout(() => {});for (var key in timer) { if (timer.hasOwnProperty(key)) { clearTimeout(timer[key]); }};사실 정확하게 이유는 모르겠으나 챗지피티님이 말씀하시길 타이머를 push할때 타이머ID가 덮어씌워져서 일부 타이머가 제대로 저장이 안되어서 그럴 수 있다고 하는게 제일 맞는거 같았음. 그래서 위 방법처럼 객체로 저장해서 for...in으로 지웠더니..

Javascript 2024.07.01
반응형