【发布时间】:2021-06-11 22:59:02
【问题描述】:
我在这里有一个超级简单的代码 sn-p,但无论我使用哪个编辑器(Webstorm、VSCode),我的 SearchBar 的“onChangeText”属性下都会出现红色下划线,并显示以下消息:
TS2322: Type '(val: string) => void' is not assignable to type '((text: string) => void) & ((text: string) => void) & (() => any) & (() => any) & (() => any) & ((text: string) => void) & (() => any) & (() => any) & (() => any)'. Type '(val: string) => void' is not assignable to type '() => any'.
代码如下:
import React from "react";
import { useState } from "react";
import { StyleSheet, View } from "react-native";
import { SearchBar } from "react-native-elements";
import { KeyboardAwareScrollView } from "react-native-keyboard-aware-scroll-view";
import ScreenWrapper from "../styled/ScreenWrapper";
const HomeScreen = (): JSX.Element => {
const [searchString, setSearchString] = useState("");
function updateSearch(val:string):void {
setSearchString(val)
}
return (
<ScreenWrapper>
<KeyboardAwareScrollView
contentContainerStyle={styles.container}
resetScrollToCoords={{ x: 0, y: 0 }}
scrollEnabled={false}
>
<SearchBar
placeholder="Type here to search tournaments"
onChangeText={updateSearch}
value={searchString}
/>
</KeyboardAwareScrollView>
</ScreenWrapper>
);
};
代码似乎编译和执行得很好,但编辑器中的错误让我抓狂。是否有充分的理由显示这一点?
【问题讨论】:
-
您使用的是哪个编辑器?您是否尝试过升级编辑器正在使用的 ts 库(在 VSCode 中,这将是
"typescript.tsdk"设置)?我遇到了类似的问题,在 VSCode 中显示错误但编译时没有错误,升级 VSCode 正在使用的 ts lib 解决了它。 -
@j1mbl3s 谢谢你的建议。我尝试更新项目的 TS 版本并确保我的编辑器使用的是相同的版本,但不幸的是错误并没有消失
-
尝试删除
updateSearch方法上的 void 返回类型。 -
@Shivam 刚刚尝试过,没有运气:(谢谢你的想法
标签: reactjs typescript react-native