React-native-router-flux 场景多次渲染
React-native-router-flux scene render multiple times
所以我使用了 react-native-router-flux,这是我的场景
<Scene key="changePassword" component={ChangePassword} title="Change Password"/>
我有这个按钮,点击它会转到那个场景
<Button style={styles.button} onPress={() => Actions.changePassword()}>
如果我多次点击按钮,会弹出多个场景。
有什么办法可以避免这种情况吗?谢谢你们的帮助:)
我觉得唯一的办法就是在按钮被点击的时候禁用它,react native button 中有一个叫做 disabled 的属性。
function handleButtonClick(){
this.setState({ disabled: true });
Actions.changePassword();
}
<Button onPress={()=> this.handleButtonClick()} disabled={this.state.disabled} />
如果按钮被点击,你可以尝试延迟,像这样放置本地状态:
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}>
希望能帮到你,谢谢:)
所以我使用了 react-native-router-flux,这是我的场景
<Scene key="changePassword" component={ChangePassword} title="Change Password"/>
我有这个按钮,点击它会转到那个场景
<Button style={styles.button} onPress={() => Actions.changePassword()}>
如果我多次点击按钮,会弹出多个场景。
有什么办法可以避免这种情况吗?谢谢你们的帮助:)
我觉得唯一的办法就是在按钮被点击的时候禁用它,react native button 中有一个叫做 disabled 的属性。
function handleButtonClick(){
this.setState({ disabled: true });
Actions.changePassword();
}
<Button onPress={()=> this.handleButtonClick()} disabled={this.state.disabled} />
如果按钮被点击,你可以尝试延迟,像这样放置本地状态:
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}>
希望能帮到你,谢谢:)