使用反应时呈现的组件上的Typescript错误

我有一个组件类,我正在使用react-redux来连接redux存储,但当我尝试将组件传递到connect函数时出现错误。

class FileItem extends Component<IFileItemProps, undefined> {
}

const mapStateToProps = (state: IFileItemReduxState): IFileItemReduxProps => {
};

const mapDispatchToProps = (dispatch: Dispatch): IFileItemDispatchProps => {
};

// This FileItem component passed into the below parameter is where I am getting the error

export default connect<IFileItemReduxProps, IFileItemDispatchProps, IFilePassedProps, IFileItemReduxState>(mapStateToProps, mapDispatchToProps)(FileItem);

这些是我正在使用的每个接口(除了来自redux的Dispatch):

export interface IFileItemProps {
    file: FileDirectoryNode;
    fileExplorerInfo: FileExplorerReducerState;
    selectFile: (file: FileDirectoryNode) => void;
    openFile: (file: FileDirectoryNode) => void;
}

export interface IFilePassedProps {
    file: FileDirectoryNode;
}

export interface IFileItemReduxState {
    fileExplorer: FileDirectoryTree;
}

export interface IFileItemReduxProps {
    fileExplorerInfo: FileDirectoryTree;
}

export interface IFileItemDispatchProps {
    selectFile: (file: FileDirectoryNode) => void;
    openFile: (file: FileDirectoryNode) => void;
}

IFileItemProps:组件将使用的所有类型

IFilePassedProps:这些是从父级传入组件的道具,所以我没有看到在渲染的组件元素上输入问题。

IFileItemReduxState:从react-redux传递给mapStateToProps的状态。

IFileItemReduxProps :从react-redux中的mapStateToProps返回的道具。

IFileItemDispatchProps :从react-redux从mapDispatchToProps返回的道具。

从我所了解的连接功能键入如下:

connect<TReturnedMapStateToProps = {}, TReturnedMapDispatchToProps = {}, TPassedFromOutsideProps= {}, TReduxState = {}>

但是当我这样做时,我得到如下错误:

在这里输入图像描述


乍一看,我发现属性'fileExplorerInfo'的类型在你的IFileItemProps和IFileItemReduxProps接口中是不同的。

你的意思是说FileDirectoryTree或FileExplorerReducerState的类型吗?

话虽如此,我遇到了类似的问题,我的组件的签名不匹配。 幸运的是,我没有传递道具,所以我像这样固定它

class FileItem extends Component<IFileItemProps &
                                 IFileItemReduxProps & 
                                 IFileItemDispatchProps, undefined> {}

const mapStateToProps = (state: IFileItemReduxState): IFileItemReduxProps =>{};

const mapDispatchToProps = (dispatch: Dispatch): IFileItemDispatchProps => {};

export default connect(mapStateToProps, mapDispatchToProps)(FileItem);

希望这可以帮助 :)

链接地址: http://www.djcxy.com/p/52169.html

上一篇: Typescript error on rendered component when using react

下一篇: redux tutorial : Where does children come from