2017-03-25 9 views
1

同じコードの作業コピーはtypescriptからのみ異なるものです。 そして、この何とかして例外メッセージ..typescript app内でreact-routerを実装しています

import * as React from 'react'; 
import Home from '../Home/Home'; 
import User from '../User/User'; 
import { 
    BrowserRouter as Router,Route,Link,Switch} from 'react-router-dom' 

class Layout extends React.Component<{},{}> { 
    render() { 
    return (
    <Router> 
     <div className="App"> 
     <Switch> 
     <Route exact path="/" component={Home} /> 
     <Route path="/user/:id" userid="25" component={User}/> 
     <Route component={Notfound}/> 
     </Switch> 
     </div> 
    </Router> 
    ); 
    } 
} 

enter image description here と私のコンポーネントの1以下のコード、home.tsx:ここ

import * as React from 'react'; 

class Home extends React.Component<{},{}> { 
    render() { 
    return (
     <div className="App"> 

     Welcome Home Page! 
     </div> 
    ); 
    } 
} 

いただきましたの?

+0

「例外」メッセージは何ですか? – QoP

+0

@QoPこんにちは、ごめんなさい写真をアップロードすることを忘れないでください。 – TyForHelpDude

+0

props/stateのないコンポーネントの場合は、タイプとして 'any'を使います。 'class HomeはReact.Componentを拡張します。 {'。エラーの原因になっているかどうかはわかりませんが、おそらくそうです。 – zeh

答えて

1

ここで問題を解決しました。コメント者が説明したように、コンパイラが明示的に小道具を渡して処理する方法について、混乱が生じることがあります。

App.tsx:

import * as React from 'react'; 

import './App.css'; 

interface State { } 

// tslint:disable-next-line 
class App extends React.Component<any, State> { 
    render() { 
    return (
     <div className="App"> 
     HIIIII 
     </div> 
    ); 
    } 
} 

export default App; 

index.tsx:

... 

ReactDOM.render(
    <Router> 
    <div> 
     <Route path="/" component={App} /> 
    </div> 
    </Router>, 
    document.getElementById('root') as HTMLElement 
); 

私はまだ、より良い解決策を見つけていません。しかし、これは本当にうまくいくでしょう。

+0

ええ、それは素晴らしいですね!ありがとうございました – TyForHelpDude

関連する問題