Notice
반응형
Recent Posts
250x250
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- BREW
- jsp
- input
- Eclipse
- script
- googleChart
- 이클립스
- IntelliJ
- SQL
- react
- node
- SCIPRT
- 응용SW
- npm
- CSS
- Oracle
- createBro
- TSX
- 이미지용량제한
- java
- 붙여넣기방지
- js
- 병행프로세스와 상호배제
- 이론
- txs
- googleCharts
- 정처산기
- html
- 책추천
- php version
Archives
- Today
- Total
개발하자
[TSX] await 특정 시간 지나면 아이콘 변경 본문
728x90
안녕하세요 리액트 + 타입스트립트를 이제 막 공부하기 시작했습니다.
항상 자바스크립트만 사용하다가 타입스크립트를 사용하려니 너무 헷갈리네요...
하지만 차근차근 공부하면서 블로그에 정리해 보려합니다.
아이콘과 버튼은 instructure UI에서 가져와 사용했습니다.
예시
import {useState} from 'react'
import './App.css'
import MyButton from './component/MyButton'
// instructure/ui import
import {Button, IconCheckSolid, Spinner} from "@instructure/ui";
function App() {
const [check , setCheck] = useState(false);
// 시간 설정
const sleep = (ms: number) => {
return new Promise(resolve => setTimeout(resolve, ms));
}
// 시간 설정 및 버튼 상태 변경 함수
async function awaitSpinner(){
setCheck(true);
try{
await sleep(1000); // 1초
}catch (error){
console.log("에러");
}finally {
setCheck(false);
}
}
// 버튼 눌렀을때 awaitSpinner 함수 실행
function getButton() {
return <Button onClick={awaitSpinner}>
<div className="flex flex-row items-center">
{check ? (
<Spinner renderTitle="Loading" size="x-small"/>
) : (
<IconCheckSolid/>
)}
<div className="pl-1">refresh</div>
</div>
</Button>;
}
return (
<>
// 버튼
{getButton()}
</>
)
}
공부하면서 유용했던 부분 메모겸 공유하고자 끄적입니다.
고쳐야하는 부분있다면 댓글 남겨주시면 수정하겠습니다.
행복한 하루 보내세요 (❁´◡`❁)
728x90
반응형
'TECH STACKS > React' 카테고리의 다른 글
[tsx] React Router(리액트 라우터) createBrowserRouter 사용하기 (1) | 2024.02.07 |
---|---|
[TSX] onclick 버튼 조건부 연산자(삼항 연산자) 사용하기 (3) | 2023.12.31 |
[TSX] react + typeScript 시작하기 (1) | 2023.12.17 |
[TXS] node + react + vite + git 실행환경 구축 (0) | 2023.12.17 |
[NODE] Mac M1 brew install node (0) | 2023.12.16 |