【发布时间】:2019-11-27 20:19:41
【问题描述】:
当我输入时,搜索栏中没有显示任何内容,但它知道我正在输入(来自我的 updateSearch 函数中的打印语句)。根据我对 react-native searchBar 的理解,我什至不需要做任何事情来显示文本,所以我真的不知道我怎么可能搞砸了。这是一个更大项目的一部分.. 但我祈祷这个问题与它的其余部分没有任何关系。
import React, { Component } from "react";
import {
View,
Text,
FlatList,
ActivityIndicator,
SafeAreaView,
StyleSheet
} from "react-native";
import Header from "../components/Header";
import { SearchBar, List, ListItem } from 'react-native-elements';
export default class Search extends React.Component {
constructor(props) {
super(props);
this.state = {
query: "",
data: []
};
}
renderHeader = () => {
return (
<SearchBar
placeholder="Type Here..."
onChangeText={this.updateSearch}
value={this.state.query}
lightTheme={true}
/>
);
}
updateSearch = text => {
console.log("text", text);
const formattedSearch = text.toLowerCase();
this.setState({ query: formattedSearch });
console.log("text", this.state.query);
};
render() {
return (
<SafeAreaView style={styles.container}>
<Header text={"Search"} />
<FlatList
ListHeaderComponent={this.renderHeader}
/>
</SafeAreaView>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
paddingTop: Expo.Constants.statusBarHeight
}
});
【问题讨论】:
-
胖箭头函数语法应该自动绑定 this 到父上下文
-
in updateSearch, console.log("text", text);和 console.log("text", this.state.query);都在打印相同的东西,但它不是“加起来”,它只是我每次按下的一个键
-
对不起,我误解了你的评论。我使用了
console.log(this)和console.log(this.state),它似乎在搜索类的上下文中。但据我了解,即使我没有设置任何内容,我也应该能够在搜索栏中输入内容。此外,打印输出中的一件奇怪的事情是"updateSearch": [Function anonymous],我不确定这是什么意思
标签: javascript react-native searchbar