Javascript 双击后反应本机状态更改。
我有一个按钮,当我点击它时,按钮改变了它的状态。但我必须双击才能改变状态。我把它记录下来,在第一次点击时,它显示为空白,当我再次点击它时,它将改变它的状态。下面是我的代码:Javascript 双击后反应本机状态更改。,javascript,reactjs,react-native,Javascript,Reactjs,React Native,我有一个按钮,当我点击它时,按钮改变了它的状态。但我必须双击才能改变状态。我把它记录下来,在第一次点击时,它显示为空白,当我再次点击它时,它将改变它的状态。下面是我的代码: class CustomButtonOne extends React.Component { constructor(props) { super(props); this.state = { buttonOne:'', }; this.selectio
class CustomButtonOne extends React.Component {
constructor(props) {
super(props);
this.state = {
buttonOne:'',
};
this.selectionOnPressOne = this.selectionOnPressOne.bind(this),
}
selectionOnPressOne = () => {
this.setState({
buttonOne:'ONE'
})
console.log(this.state.buttonOne, 'this.state.buttonOne')
}
render() {
return (
<View>
<TouchableOpacity
onPress={()=> this.selectionOnPressOne()}>
<Text>Button</Text>
</TouchableOpacity>
</View>
)
}
}
export default CustomButtonOne
类CustomButtonOne扩展React.Component{
建造师(道具){
超级(道具);
此.state={
按钮无:“”,
};
this.selectionOnPressOne=this.selectionOnPressOne.bind(this),
}
选择OnPressone=()=>{
这是我的国家({
没有:'一个'
})
console.log(this.state.buttone,'this.state.buttonOne')
}
render(){
返回(
this.selectionOnPressOne()}>
按钮
)
}
}
导出默认自定义按钮无
为什么会这样?我怎样才能通过轻触改变状态?
任何建议或意见将不胜感激,谢谢 设置状态操作是异步的,因此您记录的更改可能无法立即使用 试试这个
this.setState({
buttonOne:'ONE'
}, () => console.log(this.state.buttonOne, 'this.state.buttonOne'))
setState
操作是async,因此您记录的更改可能不会立即可用
试试这个
this.setState({
buttonOne:'ONE'
}, () => console.log(this.state.buttonOne, 'this.state.buttonOne'))
非常感谢,效果很好!但我真的不明白为什么它会起作用。你能解释一下发生了什么事吗?我想知道:)Javascript是异步工作的,
console.log几乎是立即执行的,而setState
则需要更多的时间来执行。因此,通过在setState
的回调函数中传递console.log
,我们可以安全地假设只有在值发生更改时才会调用它。非常感谢,它工作得非常好!但我真的不明白为什么它会起作用。你能解释一下发生了什么事吗?我想知道:)Javascript是异步工作的,console.log几乎是立即执行的,而setState
则需要更多的时间来执行。因此,通过在setState
的回调函数中传递console.log
,我们可以安全地假设只有在值发生更改时才会调用它