2017-08-10 78 views
1

所以我用反应本地路由器通量,这里是我的场景阵营本地路由器通量场景渲染多次

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

而且我有这个按钮,将到现场路线点击

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

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

有什么办法可以防止这种情况发生?感谢您的帮助球员:)

回答

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}> 

希望可以帮助你,谢谢:)

+0

哇,这是我寻找的,谢谢! –

1

我认为唯一的办法是禁用按钮,如果它已被点击,有一个道具称为禁用反应原生按钮。

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


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