2017-10-11 16 views
1

私はreact-reduxとtypescriptを使っているので、.tsxファイルを持っています。私の単純なコードは非常にシンプルで明白ですが、typescriptコンパイラはProvider要素の型エラーを投げますので、私が間違ったことを理解できません。ここ要素に投げられた型エラー

私の単純なコード

import * as React from 'react'; 
import * as ReactDOM from 'react-dom'; 
import { Provider } from 'react-redux'; 
import { Route, Router } from 'react-router'; 

... 

ReactDOM.render(
    <Provider store={store}> 
     <Router history={history}> 
     <Route path='/' component={MyTopComponent} breadcrumbIgnore> 
      <Route 
      path='home' 
      component={MyComponent} 
      > 
      </Route> 
     </Route> 
     </Router> 
    </Provider>, 
    document.getElementById('app'), 
); 

されており、ここでエラーです:

Property "render" are missing in type "Provider" 
:私は、このエラーの説明を見てきたTSをサポートする崇高なエディタで

JSX element type 'Provider' is not a constructor function for JSX elements. 
    Types of property 'render' are incompatible. 
    Type '() => string | number | false | Element | Element[]' is not assignable to type '{(): string | number | false | Element | Element[];(): string | number | false | Element | Elem...'. 
     Type 'string | number | false | Element | Element[]' is not assignable to type 'false | Element'. 
     Type 'string' is not assignable to type 'false | Element'. 

助けてくれてありがとう!

P.S.ここにパッケージのバージョンです

"devDependencies": { 
    "@types/react": "16.0.7", 
    "@types/react-dom": "15.5.5", 
    "@types/react-i18next": "4.6.0", 
    "@types/react-redux": "5.0.9", 
    "@types/react-test-renderer": "15.5.4", 
    "awesome-typescript-loader": "3.2.3", 
    ... 
    "tslint": "5.7.0", 
    "typescript": "2.5.3", 
    ... 
    }, 
    "dependencies": { 
    ... , 
    "i18next": "9.0.0", 
    "react": "15.6.1", 
    "react-dom": "15.6.1", 
    "react-dom-factories": "1.0.2", 
    "react-i18next": "6.0.0", 
    "react-redux": "5.0.6", 
    "react-router": "3.0.2", 

    "redux": "3.7.2", 
    ... 
    }, 
+1

新しいReact 16を使用していても、互換性のないバージョンのreact-reduxを使用することはできますか?それぞれのライブラリのバージョンを示す必要があります。 – JulienD

+0

@ types/react-redux、@ types/react、@ types/react-domのバージョン番号を入力してください。 @JulienDが述べたように、react-reduxの入力は反応のための型付けと互換性がありません。 – pamelus

+0

申し訳ありませんが、私はそれを行うことを忘れています。私はそれを追加します – Velidan

答えて

0

私はこの問題を解決する解決策を見つけました。

JulienDとpamelus私はReduxの/を探した依存関係のバージョンを確認するために述べたようには/ DOMリリースバージョンを反応

私はこれらのパッケージを更新したときにそうtypescriptですコンパイラは正しく

"@types/react": 16.0.7 -"16.0.10", 
"@types/react-dom": 15.5.5 -> "16.0.1", 
"@types/react-redux": 5.0.9 -> "5.0.10", 

希望の仕事を始めそれは誰かを助ける。宜しくお願いします。

関連する問題