2017-10-24 1 views
3

Gestern hat alles mit meinem TypeScript + React Projekt funktioniert. Heute ist alles kaputt, ohne dass sich irgendwelche Konfigurationen verändern. Rollback auf funktionierende Versionen mit Git hilft nicht. Das erneute Installieren aller Pakete mit NPM hilft nicht.TypeScript + Reagieren plötzlich inkompatibel Props Fehler

Ich habe versucht, alles von meinem App.jsx zu rippen, um den Fehler zu finden.

Das ist mein app.jsx

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

interface Props {} 

class App extends React.Component<Props> { 
    render() { 
     return (
      <div className="App"> 
       <Router> 
        <div> 
         <Route exacty={true} path="/" component={<p>Hello</p>}/> 
        </div> 
       </Router> 
      </div> 
     ); 
    } 
} 

export default App; 

Aber das gibt mir noch einen Fehler:

(10,5): error TS2605: JSX element type 'BrowserRouter' is not a constructor function for JSX elements. 
Types of property 'setState' are incompatible. 
Type '{ <K extends never>(f: (prevState: void, props: BrowserRouterProps) => Pick<void, K>, callback?: ...' is not assignable to type '{ <K extends never>(f: (prevState: {}, props: any) => Pick<{}, K>, callback?:() => any): void; <...'. 
    Types of parameters 'f' and 'f' are incompatible. 
    Type '(prevState: {}, props: any) => Pick<{}, any>' is not assignable to type '(prevState: void, props: BrowserRouterProps) => Pick<void, any>'. 
     Types of parameters 'prevState' and 'prevState' are incompatible. 
     Type 'void' is not assignable to type '{}'. 

Das Problem, das ich ist, die einfach jede Komponente mit Requisiten gebrochen ist. Wenn ich zum Beispiel eine Komponente wie meine Kopfzeile habe I get an error such as this Der Header ist eine Komponente mit leeren Props-Objekt.

Hier sind meine tsconfig.json und package.json wenn es https://pastebin.com/FSyCA1BB

+0

Scheint, dass typings für react-router-dom gebrochen sind: https://github.com/DefinitelyTyped/DefinitelyTyped/issues/17437 – helb

+0

Okay. Ich habe die Version geändert. Jetzt heißt es, dass der Namespace 'React' kein exportiertes Member 'AnchorHTMLAttributes' hat und der vorgeschlagene Fix zur Neuinstallation aller NPM-Module nichts getan hat. –

Antwort

1

Die Typdefinitionen für react-router sehr häufig veralten/ungültig hilft. Das Problem mit der Pflege der Typdefinitionen hängt damit zusammen, dass die Dokumente des reaktivierten Routers genauso häufig veraltet sind.

Fix

Warten Sie, bis die Definitionen

aufholen

Alternate

ich etwas einfach geschrieben, um es zu bekommen http://basarat.com/takeme

1

Das Problem, das ich hatte, ist, dass in package.json hatte ich @ Arten/react-Router-dom überhaupt. Keine der Versionen funktionierte, aber löschte es vollständig aus package.json das Problem behoben.

Verwandte Themen