我有以下示例:
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/>);
}
}
引发<SayMessageContainer/>
:
类型“IntrinsicAttributes & IntrinsicClassAttributes & IMessage & { children?: ReactElement...”中缺少属性“消息”。
应该如何更改这个示例,以便 Connect 可以通过 mapStateToProps 提供道具?
注意/可能的提示:SayMessageContainer 是 SayMessage 类型,这对我来说似乎不合适。
打字稿 2.0.0
编辑
编写自己的容器似乎可以解决它,但我宁愿弄清楚如何正确使用connect
class SayMessageContainer extends React.Component<{},{}>{
render () {
const props = mapStateToProps({});
return (
<SayMessage {...props}/>
);
}
}
编辑 2 使用以下类型:
"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"