【问题标题】:Property 'xxxx' does not exist on type '{}'类型“{}”上不存在属性“xxxx”
【发布时间】:2020-02-24 11:45:47
【问题描述】:

我正在调试一个我没有编写的代码,而且我是 typescript 的新手。我收到 TS2339 错误

类型“{}”上不存在属性“InputFiles”。
我明白这意味着我错过了移交财产, 但我应该修改什么?

UI\src\containers\FileUploaderContainer.tsx 内,我有类似的东西

export class FileUploader extends React.Component<any, any> {
    render() {
        return ( <div><UploadFileFormContainer /></div> );
    }
}

const FileUploaderContainer: { any } = connect(
    state => ({ InputFiles: state.InputFiles }),  // error occurs here
    dispatch => ({})
)(FileUploader);

export default FileUploaderContainer;

背景

如果我将鼠标悬停在 connect 上方的 Visual Studio 中,我会看到

(alias) connect<{InputFiles: any;}, any, {}, {}>(mapStateToProps: MapStateToPropsParam<{
InputFIles: any; }, {}, {}>, mapDispatchToProps: MapDispatchToPropsNonObject<any,{}>):
InterferableComponentEnhancerWithPropos<any,{}> (+ 14 overloads)
import connect

相关问题

以下问题没有帮助我解决我的问题

【问题讨论】:

  • 好吧,你的state(不知何故)被定义为{},所以TS不知道它的任何属性。
  • @VLAZ 你能这么好心并在这里指导我吗?我假设我应该替换any 之一?我还是不太习惯spread operator...
  • @Pac0 请您详细说明一下好吗?你的意思是我应该在最后添加一个as any
  • connect 函数的第一个参数的类型定义是什么?

标签: reactjs typescript


【解决方案1】:

您可以为这样的状态添加any 类型:

const FileUploaderContainer : any = connect(
  (state : any ) => ({ InputFiles: state.InputFiles }),  // just add any type on state
  dispatch => ({})
)(FileUploader);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-21
    • 2020-03-31
    • 2021-01-09
    • 2021-07-10
    • 2016-01-18
    • 2017-07-22
    • 2023-03-26
    相关资源
    最近更新 更多