ReactJS에서 배열 래핑
10982 단어 webdevprogrammingreactjavascript
next
및 previous
이미지를 볼 수 있는 사진만 표시하고 싶습니다. 그렇게 하려면 배열을 래핑하는 방법을 알아야 합니다. 이번 포스팅에서는 그것을 보여드리겠습니다.여기에서 소스 코드를 찾을 수 있습니다 => https://github.com/muratcan-yuksel/react-wrap-array
우선
data.js
파일을 만들고 다음을 넣습니다 =>const data = [
{
id: 1,
text: "1st Text",
},
{
id: 2,
text: "2nd Text",
},
{
id: 3,
text: "3rd Text",
},
{
id: 4,
text: "4th Text",
},
{
id: 5,
text: "5th Text",
},
];
export default data;
내 응용 프로그램에서 이 데이터 배열 개체를 통해 매핑하고 싶지 않습니다. 아니요, 매번 하나만 표시하고 싶습니다. 내
App.js
파일 확인=>import React, { useState } from "react";
import data from "./data";
import "./style.css";
const App = () => {
const [index, setIndex] = useState(0);
const { id, text } = data[index];
const nextItem = () => {
setIndex((index) => {
let newIndex = index + 1;
return wrapItems(newIndex);
});
};
const previousItem = () => {
setIndex((index) => {
let newIndex = index - 1;
return wrapItems(newIndex);
});
};
const wrapItems = (itemIndex) => {
if (itemIndex > data.length - 1) {
return 0;
} else if (itemIndex < 0) {
return data.length - 1;
} else {
return itemIndex;
}
};
return (
<div id={id} className="container">
<div className="title">{text} </div>
<div className="buttons">
<button onClick={previousItem} className="btn">
Previous
</button>
<button onClick={nextItem} className="btn">
Next
</button>
</div>
</div>
);
};
export default App;
먼저 React에서
useState
후크, 방금 생성한 data.js
파일, 걱정할 필요가 없는 style.css
파일을 가져옵니다. 확인하고 싶으시면 위의 소스 코드를 어쨌든 제공했습니다.내 상태를
0
로 설정했습니다. 이것은 data
배열에서 페이지에 표시하려는 요소의 인덱스가 됩니다. const { id, text } = data[index];
를 사용하면 text
또는 id
변수를 사용하려고 할 때마다 상태 인덱스에서 데이터 배열의 항목을 가리키도록 데이터를 구조화합니다. 즉, 상태가 변경되면 id
및 text
는 데이터 배열에서 data.js
의 다른 항목을 가리킵니다.이제 내 return 문에
₺ext
를 표시하고 두 개의 버튼도 있습니다. 하나는 이전 항목을 가리키고 다른 하나는 다음 항목을 가리킵니다. 나는 또한 그들에게 몇 가지 기능을 첨부했습니다.nextItem
함수는 상태를 plus
중 하나로 설정합니다. 이제 상태를 직접 수정할 수 없으므로 작업을 수행하고 조작할 함수를 작성해야 합니다index
. previousItem
함수는 그 순간에 상태를 minus
로 설정한다는 점을 제외하면 동일합니다. 그러나 반환된 newIndex
가 wrapItems'
함수 안에 래핑되어 있음도 알 수 있습니다.wrapItems
함수가 존재하는 이유는 그렇지 않은 경우 데이터 배열의 마지막 항목인 5번째 항목에 도달할 때마다 배열에 5개의 항목만 넣었기 때문에 인덱스가 시작됨에 따라 4번째 인덱스를 의미하기 때문입니다. 0에서 nextItem
는 상태를 계속해서 플러스 1로 업데이트하여 인덱스를 5로 만들고 응용 프로그램이 충돌합니다. 데이터 배열의 인덱스 5에 항목이 없기 때문에 충돌이 발생합니다. 지옥, 우리는 인덱스 5를 전혀 가지고 있지 않습니다. previousItem
함수에서도 같은 일이 분명히 발생하며 앱은 인덱스 -1에서 충돌합니다. wrapItems
함수는 이 문제를 해결합니다.이제
wrapItems
함수는 숫자를 사용하며 아마도 다음과 같이 해석됩니다.previousItem
함수를 실행하면 충돌한 앱이 아닌 마지막 항목이 표시됩니다. 그게 다야. 건배!
Reference
이 문제에 관하여(ReactJS에서 배열 래핑), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/muratcanyuksel/wrapping-arrays-in-reactjs-3ipi텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)