Notice
Recent Posts
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
- Replication
- mySQL_Replication
- pm2 설치
- 서버동기화
- pm2
- map이 undefined가 뜰 때
- datagridview 직접입력
- pm2 확인
- mosquitto.conf
- setInterval 외부 정지
- c# datagridview 데이터 넣기
- listener 1883
- DatePicker
- html #select #option #multiple
- AntDesign
- pm2 상태 확인
- 맥 어드레스
- setInterval 중지
- transfer
- allow_anonymouse
- pm2 시작
- setInterval clear
- setInterval 정지
- 데이터테이블 데이터 넣기
- timepicker
- mosquitto
- DataGridView 직접 입력
- 1883
- 공인IP
- invalid data
Archives
- Today
- Total
개발 노트
새 글 정보 알람 기능 본문
배열의 길이를 이용하여 새글이 추가됐는지를 추적하고자 함
1. useState를 이용하여 배열의상태와 알람이 켜졌는지를 추적함
const [allErrors, setAllErrors] = useState<{ [key: string]: any }[]>([]);
const [isAlarmChecked, setIsAlarmChecked] = useState(true);
2. useEffect를 이용하여 배열의 정보가 업데이트가 되는 것을 추적
useEffect(() => {
const farmCodes = Object.keys(groupedMessages);
let tempAllErrors:{[key:string]:any}[] = [];
farmCodes.forEach(farmCode => {
const { errorList, robot, farmName } = groupedMessages[farmCode];
if (errorList && errorList.length > 0 && robot.length > 0) {
tempAllErrors = [...tempAllErrors, ...errorList.map(error => ({
...error,
farmCode,
farmName,
}))];
}
});
setAllErrors(tempAllErrors);
}, [groupedMessages]); // groupedMessages가 변경될 때마다 알람 목록 업데이트
useEffect(() => {
if (allErrors.length > 0) {
setIsAlarmChecked(false); // 새로운 알람이 있을 경우 빨간점 표시
}
}, [allErrors.length]);
3. 특정버튼을 클릭시 알람이 체크된 것을 표시하고 isAlarmChecked을 컴포넌트에 전달
setIsAlarmChecked(true)
'React' 카테고리의 다른 글
레벨 별 사운드 구현하기 (0) | 2024.04.17 |
---|---|
fetch를 위해 알아본 자료들 (0) | 2024.04.02 |
로컬스토리지에 값 저장하기 (0) | 2024.03.22 |
modal dialog component만들기 (0) | 2024.03.20 |
필터기능 구현 (0) | 2024.03.18 |