#react-native #react-native-elements
Вопрос:
Я пытаюсь использовать панель поиска из reactnativeэлементов следующим образом:
export function EditHash({ navigation, route }: ModifyHashProps) {
const [searchQuery, setSearchQuery] = React.useState("");
const handleSearchChange = (text: string) : void => setSearchQuery(text);
return (
<SafeAreaView>
<SearchBar
placeholder="type hashtag"
lightTheme={true}
inputContainerStyle={{
backgroundColor: "#FFFFFF",
height:30
}}
containerStyle={{
backgroundColor: "#FFFFFF",
borderWidth: 1,
borderColor: "#E5E6E6",
borderRadius: 10,
marginLeft: 20,
marginRight: 20,
}}
value={searchQuery}
onChangeText={handleSearchChange}
/>
</SafeAreaView>
);
}
К сожалению, компилятор жалуется на onChangeText
назначение функции:
Type '(text: string) => void' is not assignable to type '((text: string) => void) amp; ((text: string) => void) amp; (() => any) amp; (() => any) amp; (() => any) amp; ((text: string) => void) amp; (() => any) amp; (() => any) amp; (() => any)'.
Type '(text: string) => void' is not assignable to type '() => any'.
Согласно определению типа, это должно быть нормально:
Что я делаю не так?
Комментарии:
1. Что, если вы сделаете аргумент необязательным?
2. Что вы имеете в виду под необязательностью?
3. Ну, вы передаете функцию, в которой требуется параметр, чему-то, где куча определений не передает параметр, поэтому вы пытались изменить свою подпись, чтобы она соответствовала этому?
4. Как вы можете видеть, я думаю, что это должно совпадать.
5. Вы смотрите на одну часть пересечения, как показывает ошибка (и вы также можете видеть на скриншоте), есть и другие части этого пересечения, которые
() => any
, т. е. не будут передавать параметр.