button 클릭 할 떄 마다 더보기/닫기 에러
854
작성자 없음
0 asked
제로초님 안녕하세요.
제가 button 클릭 할 떄마다 더보기/닫기 버튼을 만들어 주었는데.
처음에는 5개씩 보이도록 설정 해 주고.
더 보기 버튼을 클릭하면 -> 모든 length 만큼 보이도록 설정 해 주었습니다.
그리고 닫기 버튼을 누르면 -> 처음 5개만 보이도록 설정 해 주었구요.
하지만 문제점이 있습니다.
클릭 하면 동작은 합니다. 하지만, 1~2초 있다가 type Error 가 발생합니다.
어디서 잘못 됐는지 잘 모르겠습니다.
아 그리고 처음에 5개 이하로 보일 떈 버튼을 안 보이도록 설정 해 주고 싶은데,
어떻게 코드를 작성 해야 할 지 모르겠습니다. 똑같이 setState 를 만들어서 5개 이하로 보이는 것들은 false 를 만들어 안보이도록 설정 해 주면 될 거 같은데 모르겠네요
에러 발생 구문 입니다.
TypeError: setVisible(...) is not a function
46 |
47 |
48 | const showMore = () => {
> 49 | visible === 5 ? (
50 | setVisible(ProductDetail.allergies.length)
51 | ) (
52 | setexpanded(true)
// 제가 작성한 코드 입니다.
const [visible, setVisible] = useState(5)
const [expanded, setexpanded ] = useState(false);
const showMore = () => {
visible === 5 ? (
setVisible(ProductDetail.allergies.length)
) (
setexpanded(true)
) : (
setVisible(5)
) (
setexpanded(false)
)
return (
{ProductDetail && ProductDetail.allergies?.length ?
ProductDetail.allergies.slice(0, visible).map(All => (
<li key={All.id}>
{All.displayText}</li>
)) : <li>No information.</li>}
)
<button type="button" onClick={showMore}>
{expanded ? (
<span>close</span>
) : (
<span>see more</span>
)}
</button>
}
Answer 1
0
자바스크립트 문법 실수입니다.
삼항 연산자 안에서 함수 두 개를 호출 못 합니다. if문을 쓰세요.
if (visible === 5) {
setVisible...
setExpanded...
} else {
setVisible...
setExpanded...
}
0
javascript 기초가 많이 부족한 가요?
나름 es6 문법이나 왠만하면 다 아는 거 같은데.
javascript 로 연산을 많이 안 해봐서 계속 막히는 거 같은데.. 잘 모르겠네요.
제 생각에는 javascript 로 알고리즘 많이 풀어보면 좋아 질 거 같기도 하고
제로초님 어떻게 생각하십니까
visible > = 4 까지 면 null 값을 사용해 안보이도록 했는데.
렌더링 시 button 이 없어지는 것이 아니라 클릭해야 null 값을 받고 버튼이 사라지네요
useEffect 에서 관리를 해 줘야 하나
0
slice 함수를 이용해 처음에는 0에서 부터 5개만 보이게 하고
visible 이 5개로 보인다?
그러면 setVisible(ProductDetail.allergies.length)
length 길이 만큼 모두다 출력 되도록 만들었습니다.
0
visible이 5개 미만으로 가는 때는 언제인가요? ProductDetail.allergies.length가 5개 미만일 때밖에 없어보이는데요. 애초에 ProductDetail.allergies.length가 5개 미만일 때는 visible 값을 그걸로 설정하면 되지 않을까요?
0
0
해결 했습니다.
감사합니다.
제가 프론트 입문 한지 1년차 인데 부족한 게 많은 거 같습니다.
저도 언젠간 열심히 하다보면 제로초님 같은 멘토님이 되길..
항상 감사합니다
express response 타입
0
210
1
createRoot
0
285
1
babel-loader질문입니다! 왜쓰는지 궁금합니다!
0
685
1
undefined 처리
0
493
1
compilerOptions lib 관련
0
329
1
event type 찾기
0
324
1
정확한 type vs 가독성
0
292
1
useRef에 대해 질문드립니다.
0
305
1
tsx파일에서 에러 표시
0
863
1
Props type 질문드립니다.
0
227
1
webpack.config.ts/ Could not find a declaration file for module '@pmmmwh/react-refresh-webpack-plugin'.
0
589
1
18버전에서의 ReactDOM.render
1
658
1
깃허브에 react-router@6 업데이트 해주신 코드 질문드립니다.
0
293
1
2강 끝말잇기 npx webpack 오류가 질의사항
0
408
1
Property 'render' does not exist on type 'IntrinsicAttributes & (PathRouteProps | LayoutRouteProps | IndexRouteProps)'.
0
716
1
webpack.config.ts import 할 때 에러좀 봐주세요!!
0
307
1
React.FC에 대해 궁금합니다.
0
701
1
가위바위보 interval 타입과 이벤트타입에 관한질문
0
343
1
npm run dev 실행은 성공적으로 되는데
0
677
2
redux 유료강좌를 듣고 와야 되는지 여쭈어보려고 합니다.
0
320
1
git 내용과 강의 내용이 달라서 여쭈어봅니다.
0
220
1
Ball.tsx 타이핑
0
322
2
react-router 버젼 업그레이드 변경사항 문의
0
285
2
리액트 타입스크립트 공식문서
0
337
1

