我有以下几点:

const actionCreators = {
    action: AppReducer.actionCreators.action
}
interface GlobalState {
    user: Model.User | null;
}

interface InputState {
    setStashBarWidth(width: number);
    stashWidth: number;
}


const Header = (props: (GlobalState & InputState & typeof actionCreators)) => { ... }

const mapStateToProps = (state: RootState): GlobalState => {
    return {
        user: state.app.user
    };
};

export default connect(mapStateToProps, actionCreators)(Header);


我的意图是制作可传递到标头中的“ InputState”道具,例如:

<Header setStashBarWidth={(number)=>{}} stashWidth={3} />

但是似乎输入道具没有被识别,我无法将任何东西传递给setStashBarWidth或stashWidth,因为它们未被识别:


  (40,19):类型上不存在属性'stashBarWidth'
  'IntrinsicAttributes&IntrinsicClassAttributes>&Readonly

最佳答案

您尚未在纯组件上定义道具,您只是断言了它将在参数中接收的道具(不是同一件事)。这就像您制作了常规的React组件一样,但是没有像class X extends React.Component<MyProps>那样将props传递给泛型,而是在render方法中做了const props: MyProps = this.props;

尝试这个:

const Header: React.SFC<GlobalState & InputState & typeof actionCreators> = (props) => { ... }

09-12 01:58