React Native App не будет отображать результаты API - PullRequest
0 голосов
/ 18 января 2020

Здравствуйте, я пытаюсь отобразить ai этих фильмов, но они не отображаются на моем телефоне, но когда я консольный журнал, они работают в моем терминале, просто возникают проблемы с отображением результатов на устройстве.

В сначала я выдал ошибку

Uncaught TypeError: state.results.map не является объектом

вот код ниже

    import React ,{ useState }from 'react';
import axios from'axios';
import { StyleSheet, Text, View ,ScrollView,TextInput} from 'react-native';

export default function App() {
  const apiurl = "http://www.omdbapi.com/?i=tt3896198&apikey=?????";
  const [state,setState] = useState({
    s:'Enter A Movie...',
    results:[],
    selected:{}
  });

  const search = () => {
    axios(apiurl + "&s=" + state.s).then(({data})=>{
      let results = data.Search
      console.log(results)
      setState(prevState =>{
        return {...prevState, results: results}
      })
    })
  }

  return (
    <View style={styles.container}>
      <Text style={styles.Header}>Movie DataBase</Text>
      <TextInput 
      style={styles.searchBar}
      onChangeText={text => setState(prevState =>{
        return{...prevState, s: text}
      })}
      onSubmitEditing={search}
      value = {state.s}

       />
       <ScrollView style={styles.results}>
       {state.results.map(result => {
         <View key={result.imdbID} style={styles.result}>
         <Text>{result.Title}</Text>

         </View>
       })}



       </ScrollView>
    </View>
  );
}

1 Ответ

0 голосов
/ 18 января 2020

Вы можете напрямую установить свои результаты в вашем штате, как

setState( { ...state , results : results } )
...