2017-07-23 3 views
0

Der folgende Code mit neuen PropTypes Paket arbeiten, verwendet React.PropTypes funktioniert gut, aber es produziert die erwartete Warnung (PropTypes über das Haupt Reagieren Paket Zugriff ist veraltet ...):Typoskript - Kontext reagiert nicht

import * as React from 'react'; 

export class BackButton extends React.Component<{}, {}> { 
    static contextTypes = { 
     router: React.PropTypes.object 
    }; 

    render() { 
     return (
      <button onClick={this.goBack}>Back</button> 
     ); 
    } 

    goBack =() => { 
     this.context.router.history.goBack(); 
    } 
} 

Wenn ich jetzt React.PropTypes mit dem neuen PropTypes Paket ersetzen, erhalte ich eine Typeerror: „Kann‚Objekt‘nicht lesen Eigenschaft undefined“:

import * as React from 'react'; 
import PropTypes from 'prop-types'; 

export class BackButton extends React.Component<{}, {}> { 
    static contextTypes = { 
     router: PropTypes.object 
    }; 

    render() { 
     return (
      <button onClick={this.goBack}>Back</button> 
     ); 
    } 

    goBack =() => { 
     this.context.router.history.goBack(); 
    } 
} 

Was mache ich falsch?

+0

zu verwenden Haben Sie PropTypes von NPM installieren? –

Antwort

6

Das ist nicht der richtige Weg prop-types mit TypeScript zu importieren.

Sie haben

import * as PropTypes from 'prop-types';

statt

import PropTypes from 'prop-types';

webpackbin

+0

Danke @QoP, das war es genau. – Naresh