erfordert ich habe folgendes Beispiel:Redux, Reaktion, Typoskript: Verbinden Sie kehrt ansehen Klasse, die Requisiten
import * as React from "react";
import { connect } from 'react-redux';
interface IMessage {
message : string;
}
class SayMessage extends React.Component<IMessage, {}>{
render() {
return (<div>{this.props.message}</div>);
}
}
function mapStateToProps(state : any) : IMessage {
return { message : "Hello, world" };
}
const SayMessageContainer = connect(mapStateToProps)(SayMessage);
export class SomeOtherView extends React.Component<{},{}>{
render(){
return (<SayMessageContainer/>);
}
}
die auf <SayMessageContainer/>
wirft:
Property 'message' wird in Typ fehlt ‚IntrinsicAttributes & IntrinsicClassAttributes & IMessage & {Kinder ?: ReactElement ... '.
Wie sollte dieses Beispiel geändert werden, damit Connect die Requisiten über mapStateToProps bereitstellen kann?
Hinweis/möglicher Hinweis: SayMessageContainer ist typeof SayMessage, was mir scheint.
Typoskript 2.0.0
bearbeiten
meine eigenen Container Schreiben scheint es zu lösen, aber ich würde lieber herausfinden, wie es richtig connect
class SayMessageContainer extends React.Component<{},{}>{
render() {
const props = mapStateToProps({});
return (
<SayMessage {...props}/>
);
}
}
mit zu tun Bearbeiten 2 Verwenden Sie die folgenden Typen:
"react-redux": "registry:npm/react-redux#4.4.0+20160614222153",
"react-router": "registry:npm/react-router#2.4.0+20160628165748",
"react-router-redux": "registry:npm/react-router-redux#4.0.0+20160602212457",
"redux": "registry:npm/redux#3.0.6+20160214194820"
Welche Typisierungen verwenden Sie? Die in DefinitelyTyped oder in npm? –
"react-redux": "registrierung: npm/react-redux # 4.4.0 + 20160614222153", "react-router": "registrierung: npm/react-router # 2.4.0 + 20160628165748", "reagieren- router-redux ":" registrierung: npm/react-router-redux # 4.0.0 + 20160602212457 ", " redux ":" registrierung: npm/redux # 3.0.6 + 20160214194820 " –
Nach den neuesten [typings] (https://github.com/andrew-w-ross/typings-react-redux/blob/master/react-redux.d.ts), das Ergebnis von' connect (...) '(' wrapWithConnect') ist eine Funktion mit dem Prototyp 'T -> T' (mit' T extends React.ComponentConstructor '), was dazu führt, dass der resultierende Komponentenkonstruktor denselben Satz von Requisiten erwartet, unabhängig davon, was connector wrapper.Während dieses Problem nicht behoben wird, müssen Sie möglicherweise manuell behandeln. Siehe auch dieses Problem: https://github.com/reactjs/react-redux/issues/290 –