React-native-router-flux场景渲染多次

时间:2017-08-10 14:32:26

标签: javascript react-native react-native-router-flux

所以我使用react-native-router-flux,这是我的场景

<Scene key="changePassword" component={ChangePassword} title="Change Password"/>

我有这个按钮,点击后会路由到那个场景

<Button style={styles.button} onPress={() => Actions.changePassword()}>

如果我多次点击该按钮,会弹出多个场景。

有什么方法可以阻止这种情况吗?谢谢你们的帮助:)

2 个答案:

答案 0 :(得分:1)

我认为唯一的方法是在点击按钮时禁用该按钮,在反应原生按钮中有一个名为disabled的道具。

function handleButtonClick(){
  this.setState({ disabled: true });
  Actions.changePassword();
}


<Button onPress={()=> this.handleButtonClick()} disabled={this.state.disabled} />

答案 1 :(得分:1)

如果单击按钮,您可以尝试延迟,将这样的本地状态设置为:

constructor() {
    super()
    this.state = {
      inClick: false
    }
  }

并添加此功能:

onClickButton = () => {
    this.setState({ inClick: true })
    Actions.register()
    setTimeout(function() { this.setState({inClick: false}); }.bind(this), 2000);
  }

并且在你的按钮中应该是这样的:

<Button warning block style={styles.button} onPress={ !this.state.inClick ? this.onClickButton : null}>

希望能帮助你,谢谢:)