React의 드래그 앤 드롭 목록
14368 단어 beginnerswebdevreactreactnative
React에서 드래그 앤 드롭 목록 만들기
var placeholder = document.createElement("li");
placeholder.className = "placeholder";
class List extends React.Component {
constructor(props) {
super(props);
this.state = {...props};
}
dragStart(e) {
this.dragged = e.currentTarget;
e.dataTransfer.effectAllowed = 'move';
e.dataTransfer.setData('text/html', this.dragged);
}
dragEnd(e) {
this.dragged.style.display = 'block';
this.dragged.parentNode.removeChild(placeholder);
// update state
var data = this.state.colors;
var from = Number(this.dragged.dataset.id);
var to = Number(this.over.dataset.id);
if(from < to) to--;
data.splice(to, 0, data.splice(from, 1)[0]);
this.setState({colors: data});
}
dragOver(e) {
e.preventDefault();
this.dragged.style.display = "none";
if(e.target.className === 'placeholder') return;
this.over = e.target;
e.target.parentNode.insertBefore(placeholder, e.target);
}
render() {
var listItems = this.state.colors.map((item, i) => {
return (
<li
data-id={i}
key={i}
draggable='true'
onDragEnd={this.dragEnd.bind(this)}
onDragStart={this.dragStart.bind(this)}>{item}</li>
)
});
return (
<ul onDragOver={this.dragOver.bind(this)}>
{listItems}
</ul>
)
}
}
React에서 목록 구성 요소 사용
이제
- Component가 있어 클래스 또는 기능적 구성 요소에서 사용할 수 있습니다. 또한 색상 소품과 같은 일부 소품을
- 구성 요소에 전달할 수 있습니다. 예를 들어 App Component에서 이것을 사용하십시오.
class App extends React.Component {
constructor(props) {
super(props);
this.state = {
colors: ['PHP', 'MYSQL', 'REACT', 'LARAVEL']
}
}
render() {
return (
<div>
<List colors={this.state.colors} />
</div>
)
}
}
React의 스타일 목록
ul {
list-style: none;
margin:0;
padding:0;
border: 5px solid #e1e1e1;
box-shadow: 1px 3px 8px #888;
}
li {
padding: 10px 15px;
background:#eee;
&:hover {
background: darken(#eee, 5%);
}
}
.placeholder {
background: rgb(255,240,120);
&:before {
content: "Drop here";
color: rgb(225,210,90);
}
}
구독 좋아요 공유와 긍정적인 피드백을 보내주세요.
더 많은 자습서를 보려면 visit my website .
감사:)
행복한 코딩 :)
Reference
이 문제에 관하여(React의 드래그 앤 드롭 목록), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/readymadecode/drag-and-drop-list-in-react-18h9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)