전체 글402 2024-06-06 게시글을 업데이트 했음에도 페이지가 리렌더링 되지 않는 이유 해결방법너무 간단한 문제였는데, 문제는 fetch를 받아 온 데이터를 posts 라는 state에 담아 다른 컴포넌트에서도 사용할 수 있게 props로 하위 컴포넌트에 전달했는데 이 과정에서 리렌더링이 발생할 만한 조건을 내려주지 않은 것이다. 즉 posts라는 상태의 상태 변경 함수를 같이 내려주지 않았다는 것이 문제다. 그렇다 보니 posts 상태가 변경되었음에도 홈 피드에서는 posts의 상태를 변경해줄 수 없었던 것이다.그래서 새로고침을 직접 누르거나 아래 처럼 강제로 리로드를 해주어야 App 컴포넌트가 리렌더링 되면서 자식 컴포넌트들이 리렌더링이 그제서야 되는 문제가 발생했던 것이다.// 기존 코드navigate('/');window.location.reload(); // 변경 코드.. Programing/TIL 2024. 6. 6. 더보기 ›› 2024-06-05 팀 프로젝트 중간 회고 1. 사용한 라이브러리- quill / react-quill- supabase-js- styled-components- react-router-dom2. 에러가 난 부분, 어떻게 해결했는지- 회원정보에서 닉네임 등 다뤄야 할 서브 데이터가 증가하여 auth에서 관리하던 데이터를 users 테이블에서 관리하는 방식으로 교체하였고, 이 과정에서 홈 피드와 상세페이지에 닉네임을 렌더링 할 때 auth의 사용자와 users의 닉네임이 일치하지 않아 누구나 다 게시글을 수정하고 삭제할 수 있는 문제가 생김. => find 메서드를 통해 현재 로그인된 사용자의 id와 게시글 작성자의 id의 일치 여부를 판단해서 users 배열에서 닉네임을 추출.- quill editor에서 원하는 기능을 사용하지 못함 => 툴바를.. Programing/TIL 2024. 6. 5. 더보기 ›› 텍스트가 박스를 넘어서 렌더링 될 때 스크롤바 추가하기 텍스트가 길어서 내가 의도한 영역을 초과하여 렌더링 되는 경우가 있다. 이럴 때 해당 박스의 CSS에 overflow 속성을 주면 된다. overflow: auto; /* 스크롤 가능하도록 설정 */word-break: break-word; /* 긴 단어가 박스를 넘지 않도록 설정 */ Programing/CSS 2024. 6. 5. 더보기 ›› 형식에 맞지 않는 날짜 형태 변환해서 렌더링하기 데이터 테이블에서 글 생성일시를 불러오면 이런 형태로 되어 있는 데이터들이 많다.2024-06-04T08:06:49.657004+00:00작성일을 렌더링 할 때 저대로 보여주면 곤란하므로, 우리가 원하는 방식으로 아래처럼 포매팅을 해주면 된다. const formatDate = (dateString) => { const date = new Date(dateString); const year = date.getFullYear(); const month = String(date.getMonth() + 1).padStart(2, '0'); const day = String(date.getDate()).padStart(2, '0'); const hours = String(date.g.. Programing/React 2024. 6. 4. 더보기 ›› 2024-06-04 API 렌더링 시 태그가 그대로 노출되는 문제 해결 방법 예를 들어 웹 페이지를 아래와 같이 렌더링 하고자 하는데,quill 같은 에디터를 사용하면 데이터 테이블 안에 들어 있는 내용이 코드나 태그가 포함된다. 이를 map메서드나 filter메서드로 렌더링하면 태그가 그대로 렌더링 된다. 이런 식으로 렌더링을 하고 있을 건데 아래 처럼 개선하면 된다. 그러면 아래처럼 잘 렌더링 된다. Programing/TIL 2024. 6. 4. 더보기 ›› 2024-06-03 Supabase 스키마 이해하기 지난 팀프로젝트 간 CRUD를 제대로 해본 적이 없어 이번에 해보고 싶어 팀원들께 양해를 구한 후 CRUD를 해보고 싶다고 말씀드렸더니 흔쾌히 양보해주셨기에 CRUD를 구현하기로 하였다. 그런데 조건이 Supabase를 사용하는 것이었고, 크게 어렵지 않을 것이라고 생각했으나, 한국어 자료가 많이 없는 것에서 일단 큰 벽을 만났다. 가장 큰 문제는 '관계형' 데이터베이스에 기반한 서비스라는 게 핵심인 것인데, 이 관계형을 이해하지 못해 여러가지 문제에 봉착했다. Supabase와 찰떡궁합인듯 많이 사용되고 있는 듯한 quill editor 라이브러리를 사용하기로 하였는데, 생각보다 적용이 어려웠다.default 모듈에서는 이미지 삽입 기능이 없어 별도의 모듈로 정의하고 장착하였는데, 문제는 여기서 이.. Programing/TIL 2024. 6. 3. 더보기 ›› [supabase] 댓글 관리할 테이블 만들기 Comments 관리할 테이블 하나 만들기 먼저 posts 등의 게시글을 저장할 data table이 있다고 가정한다. 본인의 posts 테이블의 설저은 이러하다. 아래 쪽에서 foreign keys(외래키) 부분을 보면 auth (사용자 정보) 테이블에서 users라는 테이블의 id라는 key를 외래키로 받고 있고, 이를 posts 테이블의 user_id 칼럼에서 끌어다 사용하는 것을 알 수 있다. 이 원리로 새로 만들 댓글 테이블도 외부에서 가져올 데이터를 외래키로 설정해주면 된다. 새로운 테이블을 만든다.posts 테이블은 게시글을 관리하는 테이블로 기존에 만들어둔 것이다. Foreign keys (외래키) 관계 설정하기 컬럼 5개가 있는데, id는 그 코멘트만이 갖는 고유한 아이디이다. pr.. Programing/Server 2024. 6. 3. 더보기 ›› 2024-05-31 Quill 에디터와 supabase를 연동한 글쓰기 페이지 // 지금은 협업 초기로 비교적 자세하게 주석을 달았습니다.// merge하는 과정에서는 필요한 주석만 남기고 제거하겠습니다. - 김병준 -import React, { useEffect, useState } from "react";import styled from "styled-components";import { useNavigate } from 'react-router-dom';import supabase from "../supabaseClient";import ReactQuill from 'react-quill';import 'react-quill/dist/quill.snow.css'; // Quill 스타일 import (글쓰기 에디터)const Container = styled.div` dis.. Programing/TIL 2024. 6. 3. 더보기 ›› 고민 Hobby/Guitar 2024. 6. 1. 더보기 ›› Algorithm TimeAttack // 문자열 myString이 주어집니다. "x"를 기준으로 해당 문자열을 잘라내 // 배열을 만든 후 사전순의 역으로 정렬한 배열을 return 하는 solution 함수를 완성해 주세요.// 단, 빈 문자열은 반환할 배열에 넣지 않습니다.// 입출력 예// "axbxcxdx" => ["d","c","b","a"]// "dxccxbbbxaaaa" => ["d","cc","bbb","aaaa"]function solution(my_String) { let sortedArray; return sortedArray;}// 테스트 코드function runTests() { const testCases = [ { input: "abcxdefxghi", expected: ["ghi",.. Programing/CodeKata 2024. 5. 31. 더보기 ›› 이전 1 ··· 15 16 17 18 19 20 21 ··· 41 다음