下面的代码有什么问题?我在使用useState时收到打字稿警告

import * as React, { useState } from 'react'

const useForm = (callback: any | undefined) => {
  const [inputs, setInputs] = useState({}) //error: Cannot find name 'useState'.ts(2304)


  const handleInputChange = event => {
    event.persist()
    setInputs(inputs => ({
      ...inputs,
      [event.target.name]: event.target.value,
    }))
  }

  return {
    handleInputChange,
    inputs,
  }
}

export default useForm


https://codesandbox.io/s/react-typescript-starter-lmub8

最佳答案

您的导入声明无效。

您可以将所有内容都导入为React,如下所示:

import * as React from 'react';


以及来自useState对象的访问React

 const [inputs, setInputs] = React.useState({})


或导入React作为默认名称,而仅部分导入其他名称:

import React, { useState } from 'react'


和以前一样使用useState

const [inputs, setInputs] = useState({});

关于javascript - 不能将useState与 typescript 一起使用(找不到名称“useState”),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60754963/

10-11 13:27