import Autocomplete from 'react-native-autocomplete-input'
const API = 'https://swapi.co/api';
componentDidMount() {
InteractionManager.runAfterInteractions(() => {
fetch(`${API}/films/`).then(res => res.json()).then((json) => {
console.log(json)
const { results } = json;
this.setState({ results: results });
});
});
}
findFilm(query) {
if (query === '') {
return [];
}
const { results } = this.state;
if (results) {
return results.filter(film => film.title.toLowerCase().search(query) >= 0);
}
}
render中:
const { query } = this.state;
const Last = this.findFilm(query);
const comp = (a, b) => a.toLowerCase().trim() === b.toLowerCase().trim();
return(
<View style={styles.container}>
<Autocomplete
autoCapitalize="none"
autoCorrect={false}
containerStyle={styles.autocompleteContainer}
data={Last.length === 1 && comp(query, Last[0].title) ? [] : Last}
defaultValue={query}
onChangeText={text => this.setState({ query: text })}
placeholder="请输入"
renderItem={(title) => (
<TouchableOpacity onPress={() => this.setState({ query: title.item.title })}>
<Text style={styles.itemText}>
{title.item.title}
</Text>
</TouchableOpacity>
)}
/>
<View style={styles.descriptionContainer}>
{films.length > 0 ?
this.renderFilm(films[0])
:
<Text style={styles.infoText}>
Enter Title of a Star Wars movie
</Text>
}
</View>
</View>
)
年前更一波吧!!! 后续更新更多RN实用插件