2016-10-23 17 views
0

Typescriptを使ってReactでMarkdownを解析する方法はありますか? Typescriptに反応するMarkdown

が、私はのようなものをやろうとしています:

import * as ReactMarkdown from 'react-markdown' 
// OR 
import ReactMarkdown = require('react-markdown') 

しかし、活字体がFINTモジュールの反応-値下げ」をすることはできません、それが定義されていないよう:

Error: TS2307: Cannot find module 'react-markdown'.

を私はモジュールを定義することができますどのようにしてそれをReactコンポーネントとして使用しますか?お持ちでない場合とJSON-ローダー値下げを反応インストール

+0

あなたは 'react-markdown'をどこかに持っていますか? npmを使ってインストールしましたか?あなたはそれをダウンロードしましたか? –

+0

実際のパッケージには問題はありませんが、宣言ファイルが欠落しているだけで、TypeScriptはモジュールについて認識しません。残念ながら、DefinitelyTypedでは1つのようには見えないので、* react-markdown.d.ts *を自分で作成する必要があります。 – noppa

+0

このようなファイルを作成する方法は分かりますか? – NiklasMH

答えて

1

代わりに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} } /> 
    ) 
    } 
} 

また、commonmarkのためのタイピングを追加することを忘れないでください:助けようとした人々へ

$ typings install --global --save dt~commonmark 

ありがとう!

-1

npm install --save react-markdown 
npm install --save json-loader 

は、あなたのWebPACKの設定にローダーを追加します。

{ 
    module: { 
    loaders: [{ 
     test: /\.json$/, 
     loader: 'json' 
    }] 
    } 
} 

インポートが反応-値下げを。次のようになります。

var ReactMarkdown = require('react-markdown'); 

// es6 
import ReactMarkdown from 'react-markdown'; 
+0

まだ入力されていないので、 'react-markdown'モジュールを見つけることができません。 [エラー:TS2307:モジュール 'react-markdown'が見つかりません。]しかし、お手伝いをしてくれてありがとう! – NiklasMH

関連する問題