使用react-redux useSelector和typescript

问题描述 投票:0回答:1

当尝试使用react-redux typescript的新useSelector钩子(参见下面的示例)时,会出现该函数不存在的错误:

Module '"../../../node_modules/@types/react-redux"' has no exported member 'useSelector'.  TS2305

示例

import * as React from "react"
import { useSelector } from "react-redux"
import { Message } from "./Message"

export const MessageContainer = () => {
  const searchValue = useSelector((state) => state.search)
  return (
    <Message searchValue={searchValue} />
  )
}

使用过的版本: “react-redux”:“^7.1.0-alpha.5” “@types/react-redux”:“^7.0.9”

reactjs typescript redux react-redux react-hooks
1个回答
0
投票

下面的代码取自 redux 文档本身关于 typescript 的内容
typescript redux 官方

interface RootState {
      isOn: boolean
    }

// TS infers type: (state: RootState) => boolean
const selectIsOn = (state: RootState) => state.isOn

// TS infers `isOn` is boolean
const isOn = useSelector(selectIsOn)

正如后面添加钩子之前所说的,但是如果你使用钩子,你最好像这样编写选择器

© www.soinside.com 2019 - 2024. All rights reserved.