组件不会在相邻列中掉落react-beautiful-dnd

时间:2019-03-31 19:37:53

标签: javascript reactjs react-beautiful-dnd

我很难将组件放入应用程序的下一个列表区域。 我可以在父列中完美地进行拖放和排序,但是不能将组件拖放到其他位置。这是我的onDragEnd函数中的代码:

  onDragEnd = result => {
    const {destination, source, draggableId} = result
    if(!destination) return
    let start = this.state.list[parseInt(source.droppableId)]
    let finish = this.state.list[parseInt(destination.droppableId)]

    if(start === finish){ // this works
      let updatedList = this.state.list.map(obj => {
        if(obj.id === parseInt(source.droppableId)){
          let a0 = obj.cards.splice(source.index,1)
          obj.cards.splice(destination.index,0,a0[0])
          obj.cards.map((o,i) => o.id = i)
        }
        return obj
      })
      this.setState({list:updatedList})
    }
   else { // this doesn't
     let updatedList = this.state.list.map(obj => {
      if(obj.id === parseInt(source.droppableId)){
        let a0 = obj.cards.splice(source.index,1)
        obj.cards.map((o,i) => o.id = i)
        this.state.list[parseInt(destination.droppableId)].cards.splice(destination.index,0,a0[0])
        this.state.list[parseInt(destination.droppableId)].cards.map((o,i) => o.id = i)
      }
      return obj
    })
    this.setState({list:updatedList})
   }
  }

从我一直在使用的教程中,我猜到我只需要更改状态...我已经记录了几乎所有内容并检查了异常状态,但是我没有看到问题。我的演示代码可以在here中找到。谢谢。

1 个答案:

答案 0 :(得分:1)

只需为Droppable组件提供固定的height甚至是minHeight

尝试这个https://codesandbox.io/s/1vp4835x7l