我正在尝试重置点击计数状态。单击5次后,用户转到另一个屏幕,在该另一个屏幕中,有一个按钮允许用户返回到我的点击计数为0的状态,但状态仍为4次单击。
我尝试使用componentwillunmount将点击次数设置为0,我尝试将click 0设置为const初始状态,并在componentwillunmount中调用它
self
export default class Ecran1_Tactile extends React.Component {
//setting state
constructor(props) {
super(props)
this.state = {
opacity: 0,
click: 0,
}
}
//My navigation after 4 clicks
_displayScreen = () => {
if(this.state.click === 4){
this.props.navigation.navigate('Ecran2_Tactile')
}
}
我希望用户单击4次后状态会回到0,但仍保持4
谢谢您的帮助
答案 0 :(得分:4)
代替重置componentWillUnmount
中的点击,如果在状态中增加点击的位置添加到逻辑中怎么办?进行检查,确定是否为5次点击,然后用户再次点击,setState
次点击又回到了0。
答案 1 :(得分:2)
我的第一步调试是检查是否正在调用componentWillUnmount()
。您可以使用
componentWillUnmount(){
this.setState({click: 0})
console.log("componentWillUnmount called");
}
第二,如果您的业务逻辑期望是“我希望用户单击4次后状态会立即回到0”,为什么不只在条件块中设置setState?
//My navigation after 4 clicks
_displayScreen = () => {
if(this.state.click === 4){
this.props.navigation.navigate('Ecran2_Tactile')
this.setState({click: 0})
}
}