Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs React Native将电影的api数据显示到屏幕上_Reactjs_Api_React Native_Video_Axios - Fatal编程技术网

Reactjs React Native将电影的api数据显示到屏幕上

Reactjs React Native将电影的api数据显示到屏幕上,reactjs,api,react-native,video,axios,Reactjs,Api,React Native,Video,Axios,您好,我正在尝试显示这些电影的api,但它们不会显示在我的手机上,但当我登录控制台时,它们会在我的终端上工作,只是在向设备显示结果时出现问题 起初,我没有给出一个错误的答案 TypeError undefined不是对象 {正在评估'state.results.map'} 下面是代码 import React ,{ useState }from 'react'; import axios from'axios'; import { StyleSheet, Text, View ,ScrollVi

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

起初,我没有给出一个错误的答案

TypeError undefined不是对象 {正在评估'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=4c0e830";
  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>
  );
}
import React,{useState}来自“React”;
从“axios”导入axios;
从“react native”导入{样式表、文本、视图、滚动视图、文本输入};
导出默认函数App(){
常量apiurl=”http://www.omdbapi.com/?i=tt3896198&apikey=4c0e830";
常量[状态,设置状态]=使用状态({
s:“输入电影…”,
结果:[],
所选:{}
});
常量搜索=()=>{
axios(apiurl+“&s=“+state.s)。然后({data})=>{
让results=data.Search
console.log(结果)
设置状态(prevState=>{
返回{…prevState,结果:results}
})
})
}
返回(
电影数据库
设置状态(prevState=>{
返回{…prevState,s:text}
})}
onSubmitEditing={search}
值={state.s}
/>
{state.results.map(结果=>{
{result.Title}
})}
);
}

尝试添加以下内容:

{state.results && state.results.map (...)
或:

或:

{state.results.length > 0 && state.results.map (...)
{state.results !== undefined && state.results.map (...)