Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 在React with Typescript中标记_Reactjs_Typescript_Markdown - Fatal编程技术网

Reactjs 在React with Typescript中标记

Reactjs 在React with Typescript中标记,reactjs,typescript,markdown,Reactjs,Typescript,Markdown,有没有一种方法可以使用Typescript解析React中的标记 我正在尝试做以下事情: import * as ReactMarkdown from 'react-markdown' // OR import ReactMarkdown = require('react-markdown') 但Typescript无法找到模块“react markdown”,因为它未定义: 错误:TS2307:找不到模块“react markdown” 如何定义模块并将其用作React组件?我使用commo

有没有一种方法可以使用Typescript解析React中的标记

我正在尝试做以下事情:

import * as ReactMarkdown from 'react-markdown'
// OR
import ReactMarkdown = require('react-markdown')
但Typescript无法找到模块“react markdown”,因为它未定义:

错误:TS2307:找不到模块“react markdown”


如何定义模块并将其用作React组件?

我使用
commonmark
包解决了问题。他们有打字和我的环境所需的一切。以下是我的实现:

import { HtmlRenderer, Parser } from 'commonmark'

export class MyComponent extends React.Component<{}, {}> {
  private post: string

  constructor () {
    super()
    let parser = new Parser()
    let renderer = new HtmlRenderer()
    this.post = renderer.render(parser.parse("**works** like a charm!"))
  }

  render () {
    return (
      <div dangerouslySetInnerHTML={ {__html: this.post} } />
    )
  }
}

感谢那些试图帮忙的人

你在什么地方有
react markdown
吗?您是否使用npm安装了它?你下载了吗?这不是实际软件包的问题,你只是缺少声明文件,所以TypeScript不知道这个模块。遗憾的是,在DefiniteTyped中似乎没有一个文件,所以我想您需要自己创建react-markdown.d.ts。您知道如何创建这样的文件吗?使用危险的LySetinerHTML不是呈现HTML的安全方法,参考:。使用libreary,例如。
$ typings install --global --save dt~commonmark