Я полный новичок в реале native, react.js и javascript. Я разработчик Android, поэтому хотел бы попробовать RN.
В основном разница в onPress
;
Этот код показывает 'undefined'
при запуске toggle():
class LoaderBtn extends Component {
constructor(props) {
super(props);
this.state = { loading: false };
}
toggle() {
console.log(this.state);
// let state = this.state.loading;
console.log("Clicked!")
// this.setState({ loading: !state })
}
render() {
return (
<Button style={{ backgroundColor: '#468938' }} onPress={this.toggle}>
<Text>{this.props.text}</Text>
</Button>
);
}
}
но этот код работает:
class LoaderBtn extends Component {
constructor(props) {
super(props);
this.state = { loading: false };
}
toggle() {
console.log(this.state);
// let state = this.state.loading;
console.log("Clicked!")
// this.setState({ loading: !state })
}
render() {
return (
<Button style={{ backgroundColor: '#468938' }} onPress={() => {this.toggle()}}>
<Text>{this.props.text}</Text>
</Button>
);
}
}
Вы можете объяснить мне разницу, пожалуйста?
В Java/Kotlin у нас есть ссылки на методы, в основном он передает функцию, если подписи одинаковы, например onPress = () => {}
и toggle = () => {}
Но в JS это не работает: (