Я предполагаю, что это как-то связано с привязкой this
и тем фактом, что я пытаюсь перебрать объект. В этом коде я вижу, что ответы верны, я просто получаю сообщение об ошибке для строки this.setState
: _this2.setState is not a function.
componentDidMount() {
console.log('MatchesScreen: ', Object.keys(this.props))
Object.keys(this.props.profile.profile.matches).map(function(username, keyIndex) {
console.log('match', username)
url = 'https://xxxxx.execute-api.us-west-2.amazonaws.com/prod/profile?username=' + username
fetch(url, {
method: 'GET',
})
.then((response) => response.json())
.then((responseJson) => {
this.setState({isLoading: false})
this.props.updateMatches({matches: responseJson})
})
.catch((error) =>{
console.error(error);
})
})
}
Для сравнения, этот код работает совершенно нормально, я полагаю, потому что циклы не выполняются?
componentDidMount() {
Auth.currentAuthenticatedUser({
bypassCache: false
}).then(user => {
username = 'username=' + user.username
this.setState({username: user.username})
url = 'https://xxxxxxx.execute-api.us-west-2.amazonaws.com/prod/profile?' + username
fetch(url, {
method: 'GET',
})
.then((response) => response.json())
.then((responseJson) => {
this.setState({
isLoading: false,
dataSource: responseJson,
age: responseJson.basic_info.age.toString(),
height: responseJson.basic_info.height,
promptQuestion: responseJson.prompt_question,
})
})
.catch((error) =>{
console.error(error);
});
})
.catch(err => console.log('EditProfileScreen: error getting user: ', err))
}