我試圖從這個網站獲取資料:https : //reactnative.dev/movies.json
我使用以下代碼:
fetch("https://reactnative.dev/movies.json")
.then(response => response.json())
.then((responseJson) => {
setTimeout(() => {
this.setState({
loading: false,
dataSource: responseJson
})
}, 2000)
Alert.alert(responseJson)
})
.catch(error => console.log(error))
return (
<FlatList
data={DATA}
renderItem={renderItem}
keyExtractor={item => item.id}
refreshControl={
<RefreshControl refreshing={refreshing} onRefresh={this.onRefresh} tintColor={themes[theme].auxiliaryText} />
}
/>
);
};
我的問題是 Alert.alert (responseJson) 拋出以下錯誤: 此錯誤
...我想獲取 flatlist 的資料。
請問誰幫幫我?
更新:
...
constructor(props) {
super(props);
this.state = {
moviesList: '',
};
}
...
renderScroll = () => {
const { moviesList } = this.state;
fetch("https://reactnative.dev/movies.json")
.then(response => response.json())
.then((responseJson) => {
setTimeout(() => {
this.setState({
loading: false,
moviesList: responseJson.movies
})
Alert.alert(moviesList)
}, 2000)
})
.catch(error => console.log(error))
...
我希望 Alert.alert 接收資料。也就是說,從fetch函式中取出資料。
如果在 Alert.alert 中,如果資料出現,我將 responseJson.movi??es 放入,但如果我放入 moviesList,則不會
如果我在瀏覽器控制臺中發布以下內容,它會向我發送一個未定義的錯誤。我只想從函式外部接收資料。
fetch("https://reactnative.dev/movies.json")
.then(response => response.json())
.then((responseJson) => {
setTimeout(() => {
this.setState({
loading: false,
moviesList: responseJson.movies
})
}, 2000)
})
.catch(error => console.log(error))
alert(this.moviesList)
uj5u.com熱心網友回復:
您必須通過 console.log 列印您的回應資料并確定回應資料是什么。根據你的錯誤,我認為你在fetch之后獲取的是Object型別的資料,但是你需要將String分配到Alert.alert中,因此我建議你嘗試以下操作。
Alert.alert(responseJson.title)
uj5u.com熱心網友回復:
我剛剛測驗了這段代碼,它似乎有效。這就是你要找的嗎?
使用 currElement 您可以訪問拍攝物件。
import { useEffect, useState } from "react"
function Home() {
const [isLoading, setLoading] = useState(true)
const [data, saveData] = useState([])
useEffect(() => {
fetch("https://reactnative.dev/movies.json")
.then(response => response.json())
.then(responseJson => {
console.log(responseJson.movies)
saveData(responseJson.movies)
setLoading(false)
})
.catch(error => console.log(error))
}, [])
console.log(data)
return isLoading ? (
<p> i am loading</p>
) : (
<ul>
{data.map(currElement => (
<li key={currElement.id}> {currElement.title}</li>
))}
</ul>
)
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/372330.html
