2

鉴于以下......

var root2 = <div />;

var AppDnD = ReactDnD.DragDropContext(ReactDnDMultiBackend.default(RDMBHTML5toTouch.default))(root2);

ReactDOM.render(root2, document.getElementById('content'));

我得到...

警告:React.createElement:类型不应为 null、未定义、布尔值或数字。它应该是一个字符串(对于 DOM 元素)或一个 ReactClass(对于复合组件)。检查 DragDropContext(Component).

和...

未捕获的错误:元素类型无效:应为字符串(对于内置组件)或类/函数(对于复合组件),但得到:对象。检查渲染方法 DragDropContext(Component)

警告中提到的 null 似乎是以下生成代码的结果...

React.createElement(AppDnD, null)

我该如何解决?

Javascript什么时候变得如此复杂了?

图书馆是基本...

   <script src="~/lib/ReactDnD.min.js"></script>
    <script src="~/lib/ReactDnDMultiBackend.min.js"></script>
    <script src="~/lib/RDMBHTML5toTouch.min.js"></script>
4

1 回答 1

1

DragDropContext想要一个组件而不是一个元素。

因此,例如,给定...

class MyComponent extends React.Component {

    render() {

        return (<div />);
    }
};

代替...

var root2 = <MyComponent/>;

var AppDnD = ReactDnD.DragDropContext(ReactDnDMultiBackend.default(RDMBHTML5toTouch.default))(root2);

ReactDOM.render(root2, document.getElementById('content'));

……一个……

var AppDnD = ReactDnD.DragDropContext(ReactDnDMultiBackend.default(RDMBHTML5toTouch.default))(MyComponent);

ReactDOM.render(<AppDnD />, document.getElementById('content'));
于 2017-12-06T12:53:00.827 回答