Javascript can';t将useState与typescript一起使用(找不到名称';useState';)
下面的代码有什么问题?使用useState时,我收到了typescript的警告Javascript can';t将useState与typescript一起使用(找不到名称';useState';),javascript,reactjs,typescript,ecmascript-6,react-hooks,Javascript,Reactjs,Typescript,Ecmascript 6,React Hooks,下面的代码有什么问题?使用useState时,我收到了typescript的警告 import * as React, { useState } from 'react' const useForm = (callback: any | undefined) => { const [inputs, setInputs] = useState({}) //error: Cannot find name 'useState'.ts(2304) const handleInputC
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
在
formHook.tsx
import React, { useState } from 'react';
import React, { Component } from 'react'
const { inputs, handleInputChange } = useForm;
这在app.tsx
import React, { useState } from 'react';
import React, { Component } from 'react'
const { inputs, handleInputChange } = useForm;
在
formHook.tsx中试试这个
import React, { useState } from 'react';
import React, { Component } from 'react'
const { inputs, handleInputChange } = useForm;
这在app.tsx
import React, { useState } from 'react';
import React, { Component } from 'react'
const { inputs, handleInputChange } = useForm;
您的导入语句无效
您可以将所有内容导入为React
,如下所示:
import * as React from 'react';
以及从React
对象访问useState
:
const [inputs, setInputs] = React.useState({})
或导入React
作为默认值,仅部分导入其他名称:
import React, { useState } from 'react'
和前面一样使用useState
:
const [inputs, setInputs] = useState({});
您的导入语句无效
您可以将所有内容导入为React
,如下所示:
import * as React from 'react';
以及从React
对象访问useState
:
const [inputs, setInputs] = React.useState({})
或导入React
作为默认值,仅部分导入其他名称:
import React, { useState } from 'react'
和前面一样使用useState
:
const [inputs, setInputs] = useState({});
您可以首先使用React.useState
或将其作为单独导出导入。其次,还应指定事件对象,如更改事件或表单事件
import * as React from 'react'
import {useState} from 'react';
const useForm = (callback: () => void) => {
const [inputs, setInputs] = useState({});
const handleInputChange = (event:React.ChangeEvent<HTMLInputElement>) => {
event.persist()
setInputs(inputs => ({
...inputs,
[event.target.name]: event.target.value,
}))
}
return {
handleInputChange,
inputs,
}
}
export default useForm
import*作为来自“React”的React
从“react”导入{useState};
const useForm=(回调:()=>void)=>{
const[inputs,setInputs]=useState({});
常量handleInputChange=(事件:React.ChangeEvent)=>{
event.persist()
设置输入(输入=>({
…输入,
[event.target.name]:event.target.value,
}))
}
返回{
handleInputChange,
投入,
}
}
导出默认useForm
您可以先使用React.useState
或将其作为单独导出导入。其次,还应指定事件对象,如更改事件或表单事件
import * as React from 'react'
import {useState} from 'react';
const useForm = (callback: () => void) => {
const [inputs, setInputs] = useState({});
const handleInputChange = (event:React.ChangeEvent<HTMLInputElement>) => {
event.persist()
setInputs(inputs => ({
...inputs,
[event.target.name]: event.target.value,
}))
}
return {
handleInputChange,
inputs,
}
}
export default useForm
import*作为来自“React”的React
从“react”导入{useState};
const useForm=(回调:()=>void)=>{
const[inputs,setInputs]=useState({});
常量handleInputChange=(事件:React.ChangeEvent)=>{
event.persist()
设置输入(输入=>({
…输入,
[event.target.name]:event.target.value,
}))
}
返回{
handleInputChange,
投入,
}
}
导出默认useForm
尝试过,但仍然向我抛出错误:`“react”:“16.4.1”`,hook仅在react16.8
中引入。您的react版本尚不支持挂钩。您可能需要考虑升级。尝试但仍然抛出我的错误:“Read”:“16.4.1”,“钩子只引入了反应<代码> 16.8 < /代码>。您的react版本尚不支持挂钩。您可能需要考虑升级。不工作它是工作的,请将<代码> USEM()/代码> <代码> UpFase<代码>不起作用,请将<代码> USEM()/<代码> > <代码>