Здравствуйте, мне было интересно, почему this.state.name
работает внутри рендера, но не внутри функции. Значение не определено, если я использую его внутри функции
whichName = () => {
console.log("NAME: " + this.state.name);
};
А внутри рендера это работает?
{this.state.name}
Почему это не работает внутри функции? (Не определено или пусто)
Я начинающий, извините, если это глупый вопрос.
Спасибо за ваше время
РЕДАКТИРОВАТЬ
import React from "react";
import {
StyleSheet,
Text,
View
} from "react-native";
export default class Account extends React.Component {
constructor(props) {
super(props);
this.state = {
};
}
componentDidMount() {
this.fetchData();
}
catchName() {
console.log(this.state.name);
///RETURNS UNDEFINED
}
render() {
return (
<View>
RETURNS NAME
<Text>{this.state.name}</Text>
</View>
);
}
fetchData = async () => {
const savedId = await AsyncStorage.getItem("savedId");
fetch("http://192.168.1.16:3434/loadAccount?id=" + savedId)
.then(response => response.json())
.then(res => {
if (res.success === true) {
this.setState({
name: res.firstName,
});
} else {
alert(res.message);
}
})
.catch(error => {
console.error(error);
});
};