React-dnd: 일반 λ“œλž˜κ·Έμ˜ 잘λͺ»λœ μŠ€ν¬λ¦°μƒ·, μ‚¬μš©μž μ •μ˜ λ“œλž˜κ·Έ 미리보기의 κ³ λ₯΄μ§€ λͺ»ν•œ λͺ¨μ…˜

에 λ§Œλ“  2016λ…„ 05μ›” 08일  Β·  22μ½”λ©˜νŠΈ  Β·  좜처: react-dnd/react-dnd

λ§Žμ€ μ‚¬λžŒλ“€κ³Ό λ§ˆμ°¬κ°€μ§€λ‘œ λ‚˜μ—κ²Œλ„ μ •λ ¬ κ°€λŠ₯ν•œ μΉ΄λ“œ λͺ©λ‘μ΄ μžˆμŠ΅λ‹ˆλ‹€. 제 κ²½μš°μ—λŠ” 각 μΉ΄λ“œκ°€ λΈ”λ‘œκ·Έ κ²Œμ‹œλ¬Όμ˜ μ½˜ν…μΈ  블둝이고 이 쀑 μΌλΆ€λŠ” react-codemirror λ Œλ”λ§λœ μ½”λ“œ μ‘°κ°μž…λ‹ˆλ‹€. μŠ€λ‹ˆνŽ«μ— λŒ€ν•œ λ“œλž˜κ·Έ λ―Έλ¦¬λ³΄κΈ°μ—λŠ” codemirror의 μ½”λ“œ νŽΈμ§‘κΈ° λ‚΄ ν…μŠ€νŠΈμ˜ λ„ˆλΉ„ 및 높이와 λ™μΌν•œ 큰 흰색 배경이 ν¬ν•¨λ˜μ—ˆμŠ΅λ‹ˆλ‹€. 이것은 λ°”λžŒμ§ν•˜μ§€ μ•Šμ•„ CSS둜 μˆ˜μ •ν•˜λ €κ³  μ‹œλ„ν–ˆμ§€λ§Œ 운이 μ—†μ—ˆμŠ΅λ‹ˆλ‹€. 더 λ§Žμ€ λ¬Έμ„œλ₯Ό μ½μœΌλ©΄μ„œ μƒˆλ‘œμš΄ ν΄λž˜μŠ€λ‚˜ μŠ€νƒ€μΌμ΄ 적용되기 전에 dndκ°€ dom λ…Έλ“œλ₯Ό μŠ€ν¬λ¦°μƒ·ν•˜κΈ° λ•Œλ¬Έμ— λΆˆκ°€λŠ₯ν•˜λ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. λ¬Όλ‘  그것이 잘λͺ»λœ 경우)

CSSλ₯Ό μž‘λ™ν•  수 μ—†μ—ˆκΈ° λ•Œλ¬Έμ— μ‚¬μš©μž μ •μ˜ λ“œλž˜κ·Έ λ ˆμ΄μ–΄λ₯Ό μ‚¬μš©ν•˜μ—¬ 미리보기에 λŒ€ν•΄ λ‹€λ₯Έ 것을 ν‘œμ‹œν•˜λ €κ³  ν–ˆμŠ΅λ‹ˆλ‹€. 이것은 이전에 μ‹€μ œλ‘œ 맀우 λΆ€λ“œλŸ¬μ› λ˜ λ“œλž˜κ·Έκ°€ μ‹€μ œλ‘œ κ³ λ₯΄μ§€ μ•Šκ²Œ λ˜λŠ” 것을 μ œμ™Έν•˜κ³ λŠ” ν›Œλ₯­ν•˜κ²Œ μž‘λ™ν•©λ‹ˆλ‹€.

λ‹€μŒμ€ 방금 μ„€λͺ…ν•œ 문제λ₯Ό λ³΄μ—¬μ£ΌλŠ” λΉ„λ””μ˜€μž…λ‹ˆλ‹€.

https://drive.google.com/file/d/0Bzbw-6Q_sVTySUNiNmJGcFVIQ00/view?usp=sharing

그리고 λ‚˜λŠ” 당신이 λ˜ν•œ λͺ‡ 가지 μ½”λ“œλ₯Ό 보고 μ‹Άμ–΄ν•  것이라고 μƒκ°ν•©λ‹ˆλ‹€. μ—¬κΈ° λ‚΄ μ‚¬μš©μž μ •μ˜ λ“œλž˜κ·Έ λ ˆμ΄μ–΄κ°€ μžˆμŠ΅λ‹ˆλ‹€

import React, { Component, PropTypes } from 'react'
import { DragLayer } from 'react-dnd'

function collect(monitor) {
  return {
    item: monitor.getItem(),
    currentOffset: monitor.getSourceClientOffset(),
    isDragging: monitor.isDragging()
  }
}

const layerStyles = {
  position: 'fixed',
  pointerEvents: 'none',
  zIndex: 100,
  left: 0,
  top: 0,
  width: '20%',
  height: '100%'
}

function getItemStyles(props) {
  var currentOffset = props.currentOffset
  if (!currentOffset) {
    return {
      display: 'none'
    }
  }

  var x = currentOffset.x
  var y = currentOffset.y
  var transform = 'translate(' + x + 'px, ' + y + 'px)'
  return {
    transform: transform,
    WebkitTransform: transform
  }
}

class CardDragLayer extends Component {
  static propTypes = {
    item: PropTypes.object
  }

  render() {
    const { item, isDragging } = this.props

    if (!isDragging)
      return false

    return (
      <div style={layerStyles}>
        <div className='drag-preview' style={getItemStyles(this.props)}>
          <i className='fa fa-hand-scissors-o fa-6'></i>
        </div>
      </div>
    )
  }
}

export default DragLayer(collect)(CardDragLayer)

λ“œλž˜κ·Έ μ†ŒμŠ€ 및 λ“œλ‘­ λŒ€μƒμ— λŒ€ν•œ ꡬ성 μ˜΅μ…˜μ€ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

export const cardSource = {
  beginDrag(props) {
    return {
      index: props.index
    }
  }
}

export const cardTarget = {
  hover(props, monitor, component) {
    const dragIndex = monitor.getItem().index
    const hoverIndex = props.index

    if (dragIndex === hoverIndex)
      return

    props.swap(dragIndex, hoverIndex)
    monitor.getItem().index = hoverIndex;
  }
}

export function collectSource(connect, monitor) {
  return {
    connectDragSource: connect.dragSource(),
    connectDragPreview: connect.dragPreview(),
    isDragging: monitor.isDragging()
  }
}

export function collectTarget(connect) {
  return {
    connectDropTarget: connect.dropTarget()
  }
}

그리고 여기에 λ“œλž˜κ·Έλ˜λŠ” Card ꡬ성 μš”μ†Œκ°€ μžˆμŠ΅λ‹ˆλ‹€.

import React, { PropTypes, Component } from 'react'
import { Snippet, Markdown } from './Show'
import { DragSource, DropTarget } from 'react-dnd'
import { getEmptyImage } from 'react-dnd-html5-backend'
import { cardSource, cardTarget, collectSource, collectTarget } from './dragDropConfig'
import classnames from 'classnames'

class SnippetCard extends Component {
  options() {
    return {
      readOnly: true,
      scrollbarStyle: 'null',
      viewportMargin: Infinity
    }
  }

  render() {
    const { language, text } = this.props
    return(
      <Snippet
        options={this.options()}
        language={language.value}
        text={text.value} />
    )
  }
}

class MarkdownCard extends Component {
  render() {
    const { text } = this.props
    return (
      <div className='markdown-card'>
        <div className='card-content'>
          <Markdown text={text.value} />
        </div>
      </div>
    )
  }
}

const components = {
  snippet: SnippetCard,
  markdown: MarkdownCard
}

class Card extends Component {
  static propTypes = {
    connectDragSource: PropTypes.func.isRequired,
    connectDropTarget: PropTypes.func.isRequired,
    index: PropTypes.number.isRequired,
    block: PropTypes.object.isRequired,
    swap: PropTypes.func.isRequired
  }

  componentDidMount() {
    const { connectDragPreview } = this.props
    connectDragPreview(getEmptyImage(), {
      captureDraggingState: true
    })
  }

  render() {
    const { isDragging, block, connectDragSource, connectDropTarget } = this.props
    const Component = components[block.format.value]
    const classes = classnames('card', {
      dragging: isDragging
    })

    return connectDragSource(connectDropTarget((
      <div className={classes}>
        <div className='card-header'>
          <div>
            <label>
              {block.format.value}
            </label>
          </div>
          <Component {...block} />
        </div>
      </div>
    )))
  }
}

const Source = DragSource('card', cardSource, collectSource)(Card)
export default DropTarget('card', cardTarget, collectTarget)(Source)

그보닀 더 λ§Žμ€ μ½”λ“œκ°€ ν•„μš”ν•˜λ©΄ μ•Œλ €μ£Όμ‹­μ‹œμ˜€. 이 정도면 μΆ©λΆ„ν•˜λ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.

a) CSSλ₯Ό μ‚¬μš©ν•˜μ—¬ 흰색 배경을 μˆ¨κΈ°λŠ” 방법 λ˜λŠ” b) μ‚¬μš©μž μ •μ˜ λ“œλž˜κ·Έ 미리보기 λ“œλž˜κ·Έλ₯Ό 더 λΆ€λ“œλŸ½κ²Œ λ§Œλ“œλŠ” 방법에 λŒ€ν•œ μ œμ•ˆμ€ 맀우 κ°μ‚¬ν•˜κ² μŠ΅λ‹ˆλ‹€!

이 μž‘μ—…μ€ react/reduxλ₯Ό μ‚¬μš©ν•˜μ—¬ 앱을 λΉŒλ“œν•˜λŠ” 슀크린캐슀트 κ³Όμ •μ˜ 일뢀이며 μ •λ ¬ κ°€λŠ₯ν•œ μ½˜ν…μΈ  블둝 μΉ΄λ“œκ°€ κ΅¬ν˜„λ˜λŠ” 방법을 보여주기 μœ„ν•΄ react-dndμ—μ„œ 2-3개의 짧은 λΉ„λ””μ˜€λ₯Ό λ§Œλ“€ κ³„νšμž…λ‹ˆλ‹€. κ°€λŠ₯ν•œ 빨리 μΆœμ‹œλ˜κΈ°λ₯Ό λ°”λžλ‹ˆλ‹€!

needs info wontfix

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

예, λ¨Όμ € 문제λ₯Ό μΌμœΌν‚€λŠ” ꡬ성 μš”μ†Œλ₯Ό μ°ΎκΈ° μœ„ν•΄ λͺ¨λ“  ꡬ성 μš”μ†Œλ₯Ό μ œκ±°ν•˜λŠ” κ²ƒμœΌλ‘œ μ‹œμž‘ν–ˆμœΌλ©°, 일단 찾으면 속도 μ €ν•˜λ₯Ό μœ λ°œν•˜λŠ” λΆ€λΆ„μœΌλ‘œ λ“œλ¦΄λ‹€μš΄ν•œ λ‹€μŒ style 을(λ₯Ό) ν—ˆμš©ν•  수 μžˆλŠ” κ°€μž₯ λ°”κΉ₯μͺ½ μš”μ†Œμ— λŒ€ν•΄ λ“œλ¦΄λ‹€μš΄ν–ˆμŠ΅λ‹ˆλ‹€. style={{transform: translate3d(0, 0, 0)}}

λͺ¨λ“  22 λŒ“κΈ€

μ‚¬μš©μž μ •μ˜ dragLayerμ—μ„œλ„ κ³ λ₯΄μ§€ λͺ»ν•œ ν˜„μƒμ„ λ°œκ²¬ν–ˆμŠ΅λ‹ˆλ‹€(μ›Ή μ‚¬μ΄νŠΈ 예제 μ‹€ν–‰): http://gaearon.github.io/react-dnd/examples-drag-around-custom-drag-layer.html

Chromeμ—μ„œλŠ” λͺ¨λ‘ μ •μƒμ΄μ§€λ§Œ Firefoxμ—μ„œλŠ” μ• λ‹ˆλ©”μ΄μ…˜μ΄ κ³ λ₯΄μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. (λ¦¬λˆ…μŠ€ 민트, νŒŒμ΄μ–΄ν­μŠ€ 46.0.1)

그건 κ·Έλ ‡κ³  멋진 λ„μ„œκ΄€!

@sslotsky 이것을 μ•Œμ•„λ‚Έ 적이 μžˆμŠ΅λ‹ˆκΉŒ?

그렇지 μ•Šμ€ 경우 이 λ¬Έμ œμ— λŒ€ν•΄ μžμ„Ένžˆ μ•Œμ•„λ³΄κ³  CSSμ—μ„œ μš°λ¦¬κ°€ ν•  수 μžˆλŠ” μ˜λ¦¬ν•œ 것이 μžˆλŠ”μ§€ λ˜λŠ” κ³ λ₯΄μ§€ λͺ»ν•œ 것을 쀄이기 μœ„ν•΄ ν•  수 μžˆλŠ” 것이 μžˆλŠ”μ§€ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€. λ‹€λ₯Έ μ‚¬λžŒλ“€μ€ μ‚¬μš©μž μ •μ˜ λ“œλž˜κ·Έ λ ˆμ΄μ–΄ μ„±λŠ₯이 많이 λΆ€μ‘±ν•˜λ‹€κ³  λ³΄κ³ ν–ˆμŠ΅λ‹ˆλ‹€.

μ•„λ‹ˆμš”, 아직 μ•Œμ•„λ‚΄μ§€ λͺ»ν–ˆμŠ΅λ‹ˆλ‹€. λ‹€μŒ λΉ„λ””μ˜€λ₯Ό λ…Ήν™”ν•˜λ €κ³  ν•  λ•Œ μ†”λ£¨μ…˜μ΄ 쒋을 κ²ƒμž…λ‹ˆλ‹€!

μš°λ¦¬λŠ” λ˜ν•œ 이것을 보고 있으며 λͺ¨λ“  μ—…λ°μ΄νŠΈλ₯Ό μœ„ν•΄ 이 문제λ₯Ό κ΅¬λ…ν•©λ‹ˆλ‹€.

@kesne 이것을 μœ μ§€ν•˜κΈ° μœ„ν•΄ λŒ“κΈ€μ„

λ„€, 저도 이에 λŒ€ν•œ 해결책을 μ›ν•©λ‹ˆλ‹€. λ‹¨μˆœνžˆ λ“œλž˜κ·Έ κ°€λŠ₯ν•œ 개체의 μŠ€ν¬λ¦°μƒ· 이상을 κ΅¬ν˜„ν•˜λ €κ³  ν•˜μ§€λ§Œ 본질적으둜 맀우 κ°„λ‹¨ν•œ λ°˜μ‘ ꡬ성 μš”μ†Œλ₯Ό κ΅¬ν˜„ν•˜λ €κ³  ν•©λ‹ˆλ‹€.

이것도 λ˜μ§€κ² μŠ΅λ‹ˆλ‹€. μš°λ¦¬λ„ 같은 문제λ₯Ό 보고 μžˆμŠ΅λ‹ˆλ‹€.

λ‚˜λ„ μ΄κ²ƒμœΌλ‘œ μ‹€ν–‰ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. κ°„λ‹¨ν•œ λ“œλž˜κ·Έ μ•€ λ“œλ‘­μ΄ 잘 μž‘λ™ν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ λ„ˆλ¬΄ λ³΅μž‘ν•œ κ΅¬ν˜„μ΄ μžˆλŠ”λ° 이것이 μΌμ–΄λ‚˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

같은 λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€. 아무도 ν•΄κ²°μ±…μ΄λ‚˜ ν•΄κ²° 방법을 생각해 λƒˆμŠ΅λ‹ˆκΉŒ?

@alexey-belous μš°λ¦¬λŠ” 이 라이브러리λ₯Ό μŠ€ν¬λž©ν•˜κ³  https://github.com/bevacqua/react-dragulaλ₯Ό μ‚¬μš©ν–ˆμŠ΅λ‹ˆλ‹€.

여기에 λ™μΌν•œ λ¬Έμ œκ°€ 있으면 μΆ”κ°€ 의견이 있으면 기쁠 κ²ƒμž…λ‹ˆλ‹€.

이 문제λ₯Ό μ‘°μ‚¬ν•œ κ²°κ³Ό dom λ…Έλ“œλ₯Ό λ“œλž˜κ·Έν•˜λŠ” μŠ€ν¬λ¦°μƒ·μ΄ λΈŒλΌμš°μ €μ™€ λ¬΄κ΄€ν•˜κ²Œ Windowsμ—μ„œλ§Œ 투λͺ…ν•˜λ‹€λŠ” 것을 μ•Œμ•„λƒˆμŠ΅λ‹ˆλ‹€.

getItemStyles(props) λ©”μ„œλ“œμ—μ„œ console.log()λ₯Ό μ œκ±°ν•˜μ—¬ ν’ˆμ§ˆμ„ 크게 ν–₯μƒμ‹œν‚¬ 수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€. 이것은 OP에 도움이 λ˜μ§€ μ•Šμ§€λ§Œ μ•„λ§ˆλ„ λ‹€λ₯Έ λˆ„κ΅°κ°€κ°€ μ—¬κΈ°μ„œ κ±Έλ € λ„˜μ–΄μ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€.

κ·Έλž˜μ„œ 이것을 λ³΅μ œν•˜κ³  dev μ„œλ²„λ₯Ό μ‹€ν–‰ν–ˆλŠ”λ° μ‚¬μš©μž 지정 λ“œλž˜κ·Έ 미리 보기 μ˜ˆμ œλ„ κ³ λ₯΄μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ μ‚¬μ΄νŠΈλ₯Ό λΉŒλ“œν•  λ•Œ( npm run build-site ) μ‚¬μ΄νŠΈκ°€ 일반 λ§ˆν¬μ—…(React ꡬ성 μš”μ†Œ μ°Έμ‘° 없이)으둜 λ³€ν™˜λ˜κ³  이제 λ“œλž˜κ·Έ 미리 보기 μ˜ˆμ œκ°€ μ›ν™œν•˜κ²Œ μ‹€ν–‰λ©λ‹ˆλ‹€.

κ·Έλž˜μ„œ λ‚΄ 가섀은 ReactDOM.renderToString( )λŠ” μ‚¬μš©μž 지정 λ“œλž˜κ·Έ 미리보기의 λ“œλž˜κ·Έ μ•€ λ“œλ‘­ μ„±λŠ₯을 κ°œμ„ ν•©λ‹ˆλ‹€.

이것은 μ—¬μ „νžˆ β€‹β€‹μ€‘μš”ν•œ λ¬Έμ œμž…λ‹ˆλ‹€ ... :(

592 운이 μ’€ μ’‹μ•˜λ˜ 것 κ°™κΈ΄ ν•œλ° 아직 포크와 μˆ˜μ •μ΄ μ•ˆλ˜λ„€μš”. λ‚˜λ³΄λ‹€ λ¨Όμ € λ‹€λ₯Έ μ‚¬λžŒμ΄ μ ‘κ·Όν•  μˆ˜λ„ μžˆλ‹€.

@gaearon μš°λ¦¬λŠ” 당신을 μ‚¬λž‘ν•©λ‹ˆλ‹€ λ‚¨μž! 우리λ₯Ό κ΅μˆ˜ν˜•μ— μ²˜ν•˜κ²Œ 두지 λ§ˆμ‹­μ‹œμ˜€! μ˜¬λ°”λ₯Έ λ°©ν–₯으둜 우리λ₯Ό 가리킀면 μš°λ¦¬κ°€ 그것을 κ³ μΉ  것이라고 ν™•μ‹ ν•©λ‹ˆλ‹€. :)

μ‚¬μš©μž μ •μ˜ λ“œλž˜κ·Έ λ ˆμ΄μ–΄μ—μ„œ κ³ λ₯΄μ§€ λͺ»ν•œ μ• λ‹ˆλ©”μ΄μ…˜μ— λ¬Έμ œκ°€ μžˆμ—ˆλŠ”λ° 이것이 맀우 λ³΅μž‘ν•œ DOM 트리 λ•Œλ¬Έμ΄λΌλŠ” 것을 λ°œκ²¬ν–ˆμŠ΅λ‹ˆλ‹€.

μ €λŠ” μ…€λ‹Ή 4개의 DOM μš”μ†Œμ™€ 같은 것을 μƒμ„±ν•˜λŠ” ν…Œμ΄λΈ” ν˜•μ‹ λ°μ΄ν„°μ˜ μ΅œλŒ€ 수천 ν–‰κ³Ό 열을 ν‘œμ‹œν•  수 μžˆλŠ” ν…Œμ΄λΈ” ꡬ성 μš”μ†Œκ°€ μžˆλŠ” μ•±μ—μ„œ μž‘μ—…ν•©λ‹ˆλ‹€. ν…Œμ΄λΈ”μ΄ λΉ„μ–΄ μžˆμ„ λ•ŒλŠ” λ“œλž˜κ·Έ λ ˆμ΄μ–΄κ°€ μ •μƒμ μœΌλ‘œ μž‘λ™ν–ˆμ§€λ§Œ, ν…Œμ΄λΈ”μ— ν‘œμ‹œλ˜λŠ” 데이터 양이 λ§Žμ„μˆ˜λ‘ μ‚¬μš©μž μ •μ˜ λ“œλž˜κ·Έ λ ˆμ΄μ–΄μ˜ μ„±λŠ₯이 λŠλ €μ§‘λ‹ˆλ‹€. (이 경우 ν…Œμ΄λΈ”μ€ λ“œλž˜κ·Έ μ†ŒμŠ€λ‚˜ λ“œλž νƒ€κ²Ÿμ˜ λ™μž‘μ— μ „ν˜€ κ΄€μ—¬ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.)

이 경우 Firefox의 μ„±λŠ₯은 λ³€κ²½λ˜μ§€ μ•Šμ€ 반면 Chrome의 μ„±λŠ₯은 DOM 트리의 λ³΅μž‘μ„±μ΄ μ¦κ°€ν• μˆ˜λ‘ 극적으둜 μ•…ν™”λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

빈 3D λ³€ν™˜ 속성 transform: translate3d(0, 0, 0) 으둜 μŠ€νƒ€μΌμ„ μ§€μ •ν•˜μ—¬ Chrome의 자체 ν•©μ„± λ ˆμ΄μ–΄λ‘œ ν…Œμ΄λΈ”μ„ λ°€μ–΄ 문제λ₯Ό ν•΄κ²°ν•  수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.

κ·Έ ν›„ μ„±λŠ₯은 데λͺ¨ νŽ˜μ΄μ§€μ™€ λΉ„μŠ·ν–ˆμŠ΅λ‹ˆλ‹€. 이 λΌμ΄λΈŒλŸ¬λ¦¬μ— λŒ€ν•œ μ˜λ―Έκ°€ 무엇인지 잘 λͺ¨λ₯΄κ² μ§€λ§Œ μ‘μš© ν”„λ‘œκ·Έλž¨ DOM 트리의 λ³΅μž‘ν•œ 뢀뢄을 λ³„λ„μ˜ ν•©μ„± λ ˆμ΄μ–΄λ‘œ λ°€μ–΄ λ„£μœΌλ©΄ μ„±λŠ₯ 문제λ₯Ό ν•΄κ²°ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

@mgerring μ–΄λ–»κ²Œ ν–ˆλŠ”μ§€μ— λŒ€ν•œ μžμ„Έν•œ 정보가 μžˆμŠ΅λ‹ˆκΉŒ? λ‚΄ μ•±μ—μ„œ μ‚¬μš©ν•΄λ³΄κ³  μ‹ΆμŠ΅λ‹ˆλ‹€.

예, λ¨Όμ € 문제λ₯Ό μΌμœΌν‚€λŠ” ꡬ성 μš”μ†Œλ₯Ό μ°ΎκΈ° μœ„ν•΄ λͺ¨λ“  ꡬ성 μš”μ†Œλ₯Ό μ œκ±°ν•˜λŠ” κ²ƒμœΌλ‘œ μ‹œμž‘ν–ˆμœΌλ©°, 일단 찾으면 속도 μ €ν•˜λ₯Ό μœ λ°œν•˜λŠ” λΆ€λΆ„μœΌλ‘œ λ“œλ¦΄λ‹€μš΄ν•œ λ‹€μŒ style 을(λ₯Ό) ν—ˆμš©ν•  수 μžˆλŠ” κ°€μž₯ λ°”κΉ₯μͺ½ μš”μ†Œμ— λŒ€ν•΄ λ“œλ¦΄λ‹€μš΄ν–ˆμŠ΅λ‹ˆλ‹€. style={{transform: translate3d(0, 0, 0)}}

#592에 이 λŒ“κΈ€μ„ 남기고 μ‹Άμ—ˆμ§€λ§Œ 여기에도 μ μš©λ˜λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€.

@mgerring μ†”λ£¨μ…˜μ΄ μ €μ—κ²Œ

@alexey-belous μš°λ¦¬λŠ” 이 라이브러리λ₯Ό μŠ€ν¬λž©ν•˜κ³  https://github.com/bevacqua/react-dragulaλ₯Ό μ‚¬μš©ν–ˆμŠ΅λ‹ˆλ‹€.
+1

이 λ¬Έμ œλŠ” 졜근 ν™œλ™μ΄ μ—†μ—ˆκΈ° λ•Œλ¬Έμ— μžλ™μœΌλ‘œ 였래된 κ²ƒμœΌλ‘œ ν‘œμ‹œλ˜μ—ˆμŠ΅λ‹ˆλ‹€. 더 μ΄μƒμ˜ ν™œλ™μ΄ μ—†μœΌλ©΄ νμ‡„λ©λ‹ˆλ‹€. κ·€ν•˜μ˜ 기여에 κ°μ‚¬λ“œλ¦½λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰