學習JavaScript和React Native我似乎並不理解如何將json響應放入我可以訪問的變量中。我已經看過this,this,this以及Mozilla文檔和this以及更多,但似乎仍然沒有把握這個概念或使其工作。將讀取加載到變量中React Native
export default class AwesomeApp extends Component {
constructor(props) {
super(props);
this.state = { questions: [] };
}
componentWillMount() {
this.getQuestionsFromAPI().then((res) => {
this.setState({
questions: res
});
});
let url = 'http://127.0.0.1:3000/trivia';
async function getQuestionsFromAPI() {
fetch(url).then(response => response.json())
.then(function(json) {
questions = json;
//console.log(questions[0]);
return questions;})
.catch(error => console.log(error));
}
}
render() {
return (
<View style={styles.container}>
<Text style={styles.question}>
{ this.props.questions[0] }
</Text>
<View style={{ flex: 1, padding: 20 }}>
<CheckBox
label={ this.props.questions }
checked={false}
onChange={(checked) => console.log('I am checked', checked)}
/>
</View>
AppRegistry.registerComponent('AwesomeApp',() => AwesomeApp);
我得到的錯誤「undefined是不是(評估 'this.getQuestionsFromAPI()')在瀏覽器中看着它,設置功能: VAR任務= getQuestionsFromAPI() 返回一個承諾
Promise {[[PromiseStatus]]: "resolved", [[PromiseValue]]: undefined}
而
console.log(questions[0]);
返回一個對象,這是我想要的。我是什麼不明白?
您沒有在getQuestionsFromAPI中返回承諾。嘗試在第一行添加'return'。你是否也可以重新縮進你的代碼,目前還不清楚這些函數屬於哪個對象。 – FMCorz
你的意思是在函數被調用後? ['return fetch(url)...'],我得到了'undefined不是一個函數(評估'this.getQuestionsFromAPI()')'在android模擬器中,但在瀏覽器中返回'PromiseStatus:resolved'和' PromiseValue:Array [4]'。我的挑戰是把它變成顯示變量。 – driftavalii