当前位置: 首页 > 知识库问答 >
问题:

使用react redux connect函数时渲染组件上的Typescript错误

秦晋
2023-03-14

我有一个组件类,我正在使用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发出的调度除外):

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传递到MapStateTrops的状态。

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

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

据我所知,connect函数的类型如下:

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

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

共有1个答案

于嘉许
2023-03-14

乍一看,我发现IFileItemProps和IFileItemReduxProps接口中的属性“fileExplorerInfo”的类型不同。

你是说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);

希望这有助于:)

 类似资料:
  • vue3 渲染函数怎么直接当做组件使用 AppProvider 应当渲染3个组件出来的, 但是只渲染了一个出来。 如果 AppProvider 用函数式组件写, 3个组件都可以渲染出来。 但是 AppProvider 里面的内容久渲染不出来

  • 问题内容: 我正在使用Preact(出于所有意图和目的,React)来渲染保存在状态数组中的项目列表。每个项目旁边都有一个删除按钮。我的问题是:单击该按钮时,将删除正确的项目(我已对此进行了几次验证),但是重新渲染项目时缺少 最后一个 项目,并且删除的项目仍然存在。我的代码(简体): 我究竟做错了什么?我是否需要以某种方式主动重新渲染?这是n + 1种情况吗? 澄清 :我的问题不在于国家的同步性。

  • 我在Java中的JLabel存在一个渲染问题:我使用oberver observable模式,当我的模型通知我的视图JLabel已经更改了JLabel的内容,或者特别是在我的JLabel区域中显示的内容是随机的时。有时它渲染另一个面板中按钮的一部分,有时它渲染我在视图的其他组件中设置的颜色!但是,如果我最小化然后最大化我的帧,所有的渲染都是正确的。 对不起,我的英语不好。 EDIT这是我的JPan

  • 嗨,我是新来的反应本机和尝试渲染组件调用一个函数内渲染,但它似乎不工作。 我的职能: 如果我这样做,效果会更好: 但不是这个: 我不明白为什么第二个代码不起作用

  • 我对react还比较陌生,我一直在分解一个web应用程序,并用react组件替换部分。我现在正在开发一个组件,其中包含我创建的几个不同组件。 在新组件中,我在componentDidMount函数中进行API调用,并创建子组件。乍一看,一切看起来都很完美,但当我们在其中一个子组件中进行状态更改,然后在父组件中进行更改时,子组件将其状态重置为更改之前的状态。 我知道发生了什么,州政府没有被传递给家长

  • 请问下为什么renderDom能正常渲染renderComDom却渲染不出来?