Redux使用打字稿连接-TS2347

时间:2019-03-13 07:19:25

标签: reactjs typescript react-redux

我是Typescript的新手,尽管它令人着迷并且可以挽救生命,但是这个错误很难破解。

TypeScript错误:未键入的函数调用可能不接受类型参数。 TS2347

能否请您告诉我在下一个类中应该改进哪些内容以消除此错误?

这是整个班级

import React, { FunctionComponent } from 'react'
import { ListGroup } from 'react-bootstrap'
import { connect } from 'react-redux'



type StateProps = {
  mbzArtists: IMBZArtist[],
  releaseArtistID: string
}

type DispatchProps = {
  findMBZReleases: (artistID: string) => void,
}

type OwnProps = {}

type MBZSearchResultsProps = StateProps & DispatchProps & OwnProps

const MBZSearchResults: FunctionComponent<MBZSearchResultsProps> = ({ findMBZReleases, mbzArtists, releaseArtistID }) => {
  return (
    <div className="MBZSearchResults">
      // div content
    </div>
  )
}

const mapStateToProps = (state: AppState) => {
  return {
    mbzArtists: state.musicBrainz.mbzArtists,
    releaseArtistID: state.musicBrainz.artistReleaseID
  }
}

const mapDispatchToProps = (dispatch: any): DispatchProps => {
  return {
    findMBZReleases: (artistID: string) => dispatch(Actions.MBZActions.findMBZReleases(artistID))
  }
}

export default connect<StateProps, DispatchProps, OwnProps>(mapStateToProps, mapDispatchToProps)(MBZSearchResults)

如果您需要更多信息,请告诉我。

谢谢。

2 个答案:

答案 0 :(得分:0)

如您发布的错误所述。

  

TypeScript错误:未键入的函数调用可能不接受类型   论点。 TS2347

connect函数不接受类型参数。

更改导出连接与此:

export default connect(mapStateToProps, mapDispatchToProps)(MBZSearchResults)

答案 1 :(得分:0)

通过更改出口声明,似乎可以解决此问题,如下所示:const组件:React.FunctionComponent = connect(mapStateToProps,mapDispatchToProps)(MBZSearchResults)出口默认组件我可以请打字稿用户发表评论,让我知道是否这是要走的路吗?