我正在尝试在应用程序中一起使用react-dnd
并react-big-calendar
支持拖放支持(也可以react-dnd
在后台使用)。但是,如果我单独启动它们,我会收到一个错误:
Uncaught Error: Cannot have two HTML5 backends at the same time.
这是代码:
应用程序.js
import React from 'react'
import {DragDropContext} from 'react-dnd'
import HTML5Backend from 'react-dnd-html5-backend'
import Calendar from './Calendar'
class App extends React.Component {
render() {
return {
<div>
...
<Calendar />
</div>
}
}
}
export default DragDropContext(HTML5Backend)(App)
日历.js
import React from 'react'
import BigCalendar from 'react-big-calendar'
import withDragAndDrop from 'react-big-calendar/lib/addons/dragAndDrop'
const Calendar = withDragAndDrop(BigCalendar)
...
react-big-calendar
文档提到该withDragAndDrop()
函数可以接受后端作为第二个参数,这意味着理论上,我应该能够检索我已经设置的后端实例react-dnd
并将其作为参数传递。但是,我不确定如何检索后端实例。
react-dnd
文档DragDropContext
提到了一个实例方法getManager()
,它应该可以帮助我检索后端(getManager().getBackend()
)。但是,这里的关键是实例方法。如何DragDropContext(HTML5Backend)(App)
从我的Calendar.js
文件中获取实例?