개발자
안녕하세요. 만약 length가 10인 배열이 있는데, 처음에는 이 중 2개만 보여주고 어떤 버튼을 눌렀을때 나머지 10개를 다 보여주고 싶습니다. 이럴때에는 map을 돌릴 때 어떻게 구현을 해야지 끊어서 보여줄 수 있나요?
답변 2
인기 답변
어떤걸 구현하시는지 정확하게는 모르겠지만 한번 구현해 볼게요!! 2개만 보여준다는게 어떤 의미인지 모르지만 map을 통해서 각 값의 조건을 추가해서 원하는 값만 보여지도록 할 수 있습니다. const [buttonOn, setButtonOn] = useState(false) const array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] array.map(item => { if(buttonOn) { //전부다 보이기 return <p>{item}</p> } else { // 원하는 두 개 보이기 // 원하는 조건의 두 개는 return 하고 나머지는 return null } )) 이런식으로 하고 버튼을 눌렀을 때 setButtonOn을 통해 buttonOn을 true로 변경시켜주면 되지않을까 추측해봅니다.
여러 방법이 있는 것 같아요. 2개를 항상 먼저 보여주고 특정 상태 값에 따라 나머지 8개를 보여준다고 가정을 해보겠습니다. 저는 Javascript destructuring을 사용해서 first, second, rest 형식을 취할 것 같습니다. (https://javascript.info/destructuring-assignment) const [first, second, ...rest] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; const [showRest, setShowRest] = useState(false); const onClick = () => setShowRest(true); return ( <> <button onClick={onClick}>show rest</button> {first} {second} {showRest && rest.map(r => <>{r}</>)} </> )
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
지금 가입하면 모든 질문의 답변을 볼 수 있어요!