01/10/2018, 08:24
Hàm gọi hàm trong react native
class PinkScreen extends Component{
constructor(props){
super(props);
this.state={
number:12
}
}
changeState(){
this.setState({
number: this.state.number +1
});
}
render(){
this.changeState.bind(this);
return(
<View}>
<Text>{this.state.number}</Text>
</View>
);
}
}
Mấy anh chị cho em hỏi làm sao mình có thể chạy hàm changeState mà không cần bỏ vào sự kiện onPress hay onClick ạ
em cám ơn.
Bài liên quan
à em có thêm this.changeState=this.changeState.bind(this); vào hàm khởi tạo như link trên nhưng kết quả cũng ko khác hơn.
stackoverflow.com
How to call a function in the render function?
Vậy bạn muốn changeState chạy ở sự kiện nào ???
Hay là như thế này:
không được chạy setState trong render, lặp vô hạn đấy.
Cám ơn anh đã rep, ý của em là ví dụ như mình muốn run changeState() trong hàm componentWillMount thì là sao ạ. vd như:
componentWillMount()
{
this.changeState.bind(i);
em ghi như thế này nhưng biến number ko đổi, anh có thể giải thích giúp em được ko ạ.
this.changeState.bind(i); không phải lệnh gọi hàm (chẳng biết bạn bỏ i vào đó làm gì ?? )
Nếu bạn muốn nó chạy trong componentWillMount thì cứ thế này là được:
Tham khảo: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind
Ui, em cảm ơn anh nhiều nha. Hy vọng cộng đồng luôn có những người như anh