2016-06-07 16 views
15

Używam tego prostego elementu React po lewej stronie jako mojego głównego elementu na stronie po prawej stronie.Typ elementu JSX nie ma żadnego konstruktu ani sygnatur połączeń

Jak naprawić wyświetlony błąd?

enter image description here

+0

Twój kod wygląda na prawidłowy; z której wersji maszynopisu korzystasz? Wygląda na to, że jest to [1.8] (https://github.com/Microsoft/TypeScript/wiki/What's-new-in-TypeScript#stateless-function-components-in-react), który zapewniał więcej wsparcia dzięki komponentom funkcji React bez odpowiedzi. –

+0

Yup, najnowsza wersja TS i Wpisów i definicji. – Richard

+0

Mam ten sam problem. Wygląda na to, że nie obsługuje elementów bezstanowych. ts 1.8.10. – ieugen

Odpowiedz

1

Jak o:

class App extends React.Component<any, any> { 
    render() { 
     return <div>foo</div>; 
    } 
} 
+0

Dzięki, ale nie rozumiem, jak to pomaga. Plik app.ts zwraca "cssModules (App, css)", a nie funkcję App w pliku app.ts. – Richard

1

Ten hacky typecast sprawia, że ​​błąd odejść, choć ja tego nie rozumiem w ogóle:

import App: any = require('./components/views/app/app');

+1

Tutaj rzutujesz 'App' jako typ" Any "i omijasz system typów. Błędy maszynopisu zniknęły, ponieważ teraz skutecznie używasz JavaScript. –

0

React oczekuje React.StatelessComponent z importowanej aplikacji w mainScreenHelper.tsx Oznacza to, że musisz podać tę int Echo w aplikacji

interface IProps {} 
const App : React.StatelessComponent<IProps> =() => (
    <div></div> 
); 
Powiązane problemy