【问题标题】:React Native App Wont display Api resultsReact Native App 不会显示 Api 结果
【发布时间】:2020-05-05 01:33:39
【问题描述】:

您好,我正在尝试显示这些电影的 AI,但不会在我的手机上显示,但是当我控制台登录时,它们在我的终端中工作,只是在向设备显示结果时出现问题。

一开始我错了

未捕获的类型错误: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>
  );
}

【问题讨论】:

  • 可以分享api调用的结果吗?如果你想在 js 中使用 map() 结果应该是一个数组。
  • 它是一个数组
  • 你能分享那部分吗

标签: reactjs react-native video mobile axios


【解决方案1】:

您可以直接将结果设置为您的状态,例如

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多