有没有办法获得初始状态?

时间:2019-05-17 15:31:18

标签: react-native state react-navigation

我正在尝试重置点击计数状态。单击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

谢谢您的帮助

2 个答案:

答案 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})
    }
  }