фильтр поиска с ListView реагировать - PullRequest
0 голосов
/ 07 мая 2019

хии, я все еще новичок в реагировании на родной язык. Я пытаюсь реализовать поиск в списке без повторной выборки данных (поиск по имени), как поиск по файлу json, который я сначала получил, так как я могу заставить его работать, ребята?я следовал многим учебникам, но все еще не могу этого сделать listView всегда пуст, вот мой код, я надеюсь, что нашел решение для этого

import React, { Component } from "react";
import { View, Text, Image, ListView } from "react-native";
import axios from "axios";
import { SearchButton } from "./utilities/SearchButton";
import SearchBar from "react-native-searchbar";
class SearchScreen extends Component {
  constructor(props) {
    super(props);
    this.ds = new ListView.DataSource({
      rowHasChanged: (r1, r2) => r1 !== r2
    });
    this.state = {
      doctors: [],
      specefic: []
    };
  }
  componentWillMount() {
    this.fetchdata();
  }
  fetchdata = () => {
    axios
      .get("http://localhost:3000/api/Doctor")
      .then(response => this.setState({ doctors: response.data }));
  };
  static navigationOptions = ({ navigation }) => {
    return {
      headerRight: <SearchButton navigation={navigation} />
    };
  };

  render() {
    return (
      <View>
        <View>
          <SearchBar
            ref={ref => (this.props.navigation.searchBar = ref)}
            data={this.state.doctors}
            handleResults={results => {
              this.setState({ specefic: results });
            }}
            iOSPadding={false}
            allDataOnEmptySearch={true}
            fontSize={23}
            hideBack={true}
            heightAdjust={-5}
          />
        </View>
        <View>
          <ListView
            enableEmptySections={true}
            dataSource={this.ds.cloneWithRows(this.state.doctors)}
            renderRow={service => {
              return (
                <View style={styles.box}>
                  <Image
                    style={styles.image}
                    source={{ uri: service.profileImageUrl }}
                  />
                  <View style={styles.boxContent}>
                    <Text style={styles.title}>{service.nom}</Text>
                    <Text style={styles.description}>{service.email}</Text>
                  </View>
                </View>
              );
            }}
          />
        </View>
      </View>
    );
  }
}

export default SearchScreen;


...