2017-12-01 3 views
1

ich herauszufinden versuche, wie Requisiten in Komponenten Typoskript bei der Verwendung zu überliefern.Wie Requisiten nach unten in passieren reagieren-redux-Typoskript

Der Fehler erhalte ich, wenn ich versuche, überall und zu jeder Stütze zu überliefern, sei es aber {...this.props} lokalen Staat oder irgendetwas sein. Aber wenn ich das übergebe.props, bekomme ich am anderen Ende nichts, was ich will. Stattdessen erhalte ich Geschichte, Ort, Übereinstimmung mit ihren anwendbaren Standardeinstellungen und staticContext: undefiniert. Wenn ich versuche, Aktionen auszuführen, wie in meinem Beispiel unten, dann ist es undefiniert.

Der Fehler, den ich als Ergebnis erhalten, ist

client:157 [at-loader] ./src/containers/App/index.tsx:25:31 TS2339: Property 'actions' does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes<Home> & Readonly<{ children?: ReactNode; }> & Read...'.

Mein App.tsx unten:

import * as React from 'react'; 
import * as HomeActions from '../../actions/home'; 
import * as style from './style.css'; 
import { bindActionCreators } from 'redux'; 
import { connect } from 'react-redux'; 
import { RouteComponentProps } from 'react-router'; 
import { RootState } from '../../reducers'; 
import Home from '../../components/Home'; 

export namespace App { 
    export interface Props extends RouteComponentProps<void> { 
    actions: typeof HomeActions 
    } 

    export interface State { 
    /* empty */ 
    } 
} 

export class App extends React.Component<App.Props, App.State> { 

    render() { 
    return (
     <div> 
     <Home {...this.props} actions={this.props.actions}/> 
     {this.props.children} 
     </div> 
    ); 
    } 
} 

function mapStateToProps(state: RootState) { 
    return { 
    home: state.home 
    }; 
} 

function mapDispatchToProps(dispatch) { 
    return { 
    actions: bindActionCreators(HomeActions as any, dispatch) 
    }; 
} 

connect(mapStateToProps, mapDispatchToProps); 

Im Heim Komponente, wenn ich this.props.actions in onComponentDidMount(){} einloggen dann werde ich undefiniert.

+0

Haben Sie eine Lösung erhalten? –

Antwort

1

Sie sollten Ihre Komponente connect und Export verbundene Komponente statt nur Komponente zu übergeben.

export connect(mapStateToProps, mapDispatchToProps)(App); 
+0

Ich refaktorierte das unten, sollte das früher so getan haben, danke. Allerdings bekomme ich immer noch den gleichen Fehler wie oben beschrieben, wenn ich versuche, neue Requisiten (Stil, Klassenname, Aktion, alles wirklich) einzubringen. – Brandon

Verwandte Themen