Вы можете использовать либо:
onPress={() => this.loginHandler()}
или
onPress={this.loginHandler}
Но второе лучше, поскольку оно не будет воссоздано при каждом рендеринге, потому что мы используем ссылку, а не вызываем обратный вызов. Здесь проблема в том, что вы определяете свою функцию за пределами вашего класса. Так что this.loginHandler
не указывает на вашу функцию.
Это будет работать так:
const loginHandler = () => {
console.log("P11");
};
export default class AuthScreen extends Component {
render() {
return (
<View>
<Button
style={styles.btnLogin}
title="Iniciá sesión"
onPress={loginHandler}
style={{ flex: 1 }}
/>
</View>
);
}
}
Вы используете здесь внешнюю функцию, но, вероятно, вам это не нужно, поскольку в будущем вы захотите использовать некоторые переменные или другие методы в вашем классе. Итак, переместите его в свой класс и используйте this
.
export default class AuthScreen extends Component {
loginHandler = () => {
console.log("P11");
};
render() {
return (
<View>
<Button
style={styles.btnLogin}
title="Iniciá sesión"
onPress={this.loginHandler}
style={{ flex: 1 }}
/>
</View>
);
}
}