【发布时间】: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