TypeScript怎么使用draftjs?

图片描述

这个代码是draftjs官方给的示例,但是在tsx里面报错,报错消息如图。
不知怎么解决。
已经用了 npm install @type/draft-js --save
晕了,这个要怎么用呢?

阅读 5.5k
2 个回答
import * as React from 'react'
import {Editor, EditorState} from 'draft-js'

console.log(React, Editor, EditorState)

ts编译后的文件node是可以直接运行的,如果要在浏览器上运行,因为浏览器本身是没有实现模块化加载的,要使用 webpack 进行打包(rollup、browserify也是可以的)。

@hyy1115 @fzred 无论两位谁说的对,都十分感谢。

@fzred

`import * as React from 'react';
import * as ReactDOM from 'react-dom';
import { Editor, EditorState } from "draft-js";

class MyEditor extends React.Component<any, any> {
    constructor(props) {
        super(props);

        this.state = { editorState: EditorState.createEmpty() };
    }
    handleChange(e) {
        this.setState({ editorState: e });
    }
    render() {
        return (
            <Editor editorState={this.state.editorState} onChange={e => this.handleChange(e)} />
        );
    }
}

ReactDOM.render(
    <MyEditor />,
    document.getElementById('editor')
);`

这是tsx文件。

<link href="~/css/draft.css" rel="stylesheet" />
<div id="editor"></div>
@section scripts{
    <script src="~/lib/immutable.min.js"></script>
    <script src="~/lib/draft.min.js"></script>
    <script src="~/lib/require.js"></script>
    <script src="~/js/editor.js"></script>
}

这是html文件,报错了。

Uncaught Error: Module name "react" has not been loaded yet for context: _. Use require([])(…)

另外,我用typescript的时候,像React ReactDOM Axios 这些库,npm运行 install @types/react react-dom axios 就能在tsx文件直接用,不用再import什么了,为什么draft不行啊。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题