reactjs - React Typescript - 类型参数不可分配给类型参数
问题描述
我在这里有一个演示
这是一个 React 应用程序,使用 Typescript 和钩子将条目捕获到下面简单显示的表单中。
在 Stackblitz 中它可以工作,但在本地我使用的是 VS 代码,我得到一个错误,setUser(userData);
错误是
const userData: {
username: string;
password: string;
prevState: null;
}
Argument of type '{ username: string; password: string; prevState: null; }' is not assignable to parameter of type '(prevState: null) => null'.
Type '{ username: string; password: string; prevState: null; }' provides no match for the signature '(prevState: null): null'.ts(2345)
我怎样才能解决这个打字稿错误
解决方案
const [user, setUser] = useState(null);
由于您没有给这个类型,打字稿必须尝试推断它。它看到你传入了一个空值,所以它假设这个状态是(并且永远是)空值。相反,您需要指定类型,如下所示:
interface UserData {
username: string;
password: string;
prevState: null
}
//...
const [user, setUser] = useState<UserData | null>(null);
推荐阅读
- python - 从 Pyspark UDF 调用另一个自定义 Python 函数
- javascript - 拉姆达:哪里有?
- c# - XAML 属性集顺序优化
- python - 如何从 tkinter 条目小部件中获取值,以便对其进行验证?
- java - 如何获取和索引数组对象
- axapta - 请求的任务无法在 \Forms\AB\DataSources\XY\Methods\displayOption 上执行
- amazon-web-services - 确认后不会触发 lambda 函数
- php - 如何使用 TwitterAPIExchange 按国家/地区查找关注度最高的帐户?
- gulp - 运行 gulp.series() 的问题
- r - 带有特定字母的 Wordcloud