reactjs - TypeScript 错误类型 '{}' 缺少类型中的以下属性

标签 reactjs typescript redux types

我通常对 TypeScript 不太熟悉,但收到了此错误。

Type '{}' is missing the following properties from type 'Pick<PropsI, "loadUser" | "user">': loadUser, user

上述错误出现在 App.text 中并指向 <AppRouter/>

我很困惑为什么会遇到这个问题以及可能的解决办法是什么?我假设我没有在应用程序路由器内部正确声明某些内容,但我似乎无法弄清楚出了什么问题或我收到的错误?

App.tsx

import AppRouter from './router/AppRouter'

const App: React.FC = () => {
  return (
    <Fragment>
      <AppRouter />
    </Fragment>
  )
}

export default App

应用程序路由器


import React, {ExoticComponent, Fragment, useEffect} from 'react'
import {BrowserRouter as Router, Switch, Route} from 'react-router-dom'
import FreeTextView from '../components/analytics/dashboard/freeTextView/FreeTextView'
import {connect, useDispatch, useSelector} from 'react-redux'
import {Nav, IconSvgs} from '@pxhub/shared-components'
import {AppState, UserI, AccessRecordsI} from '../store/actions/Types'
import {loadUser} from '../store/actions/UserActions'

interface PropsI {
  loadUser: () => void
  user: UserI
}

// Defualt Page
const Page = () => {
  return (
    <Fragment>
      <Switch>
        <Route path="/freeview" component={FreeTextView} />
      </Switch>
    </Fragment>
  )
}

// App Router
export const AppRouter: React.FC<PropsI> = ({loadUser, user}: PropsI) => {
  const userAccess = user.accessRecords.map((accessRecord: AccessRecordsI) => {
    return accessRecord.Access_Transaction
  })

  useEffect(() => {
    loadUser()
  })

  return (
    <Fragment>
      <IconSvgs />
      <Nav
        user={user}
        userAccess={userAccess}
        urlPrefix={process.env.REACT_APP_URL_PREFIX}
      />
      <Router>
        <Switch>
          <Route path="/" component={Page} />
        </Switch>
      </Router>
    </Fragment>
  )
}

const dispatch = useDispatch()

const mapDispatchToProps = () => () => {
  dispatch(loadUser())
}
const mapStateToProps = useSelector((state: AppState) => state.user)

export default connect(mapStateToProps, mapDispatchToProps)(AppRouter)

最佳答案

您声明 AppRouter 需要 props loaduser 和 user,但随后您在 App.tsx 中调用它时没有使用这些 props。

编辑:虽然不是问题中确定的特定 TS 错误的原因,但如评论中所述,它也可能导致组合 useSelectormapStateToPropsuseDispatchmapDispatchToProps。如今您可能只想使用钩子(Hook)。

关于reactjs - TypeScript 错误类型 '{}' 缺少类型中的以下属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63953663/

相关文章:

angular - ng2-intl - 静态解析符号值时遇到错误

reactjs - 以编程方式响应 native (使用 Redux)动画切换

reactjs - 没有国家选择器的 react 电话号码输入

javascript - react 表在搜索排序上计算页面更改的页脚总和,我们如何实现这一点

javascript - 包含空格和换行符的状态更改不会重新渲染

ReactJS,material-ui TextField onChange 不起作用

typescript - 在 Typescript 2.x 中创建命名空间

javascript - 从对象数组创建 PrimeNG TreeTable json

javascript - 在 Redux 和 React Native 应用程序中访问商店

javascript - × TypeError : Cannot read properties of undefined (reading 'getState' )