gpt4 book ai didi

javascript - setState 和 setInterval 导致 "Warning: Can only update a mount or mounting component."

转载 作者:行者123 更新时间:2023-11-29 20:58:38 25 4
gpt4 key购买 nike

我对 setState 和 setInterval 有一个奇怪的问题。当我一起使用它们时,会出现以下警告:

Warning: Can only update a mount or mounting component. This usually means you called setState, replaceState or forceUpdate on an unmounted component. This is a no-op.

此警告在 Android 中没有问题,并且没有任何缺点。但是,在 ISO 中,它会随机导致应用程序卡住!这是我的代码:

我有一个按钮,每当我触摸它时,它应该使模式打开(真),10 秒后它应该关闭(假),然后重定向到另一个页面。这是按钮的代码:

 onPressEnter() {
this.setState({ isModalVisible: true);
if(this.timer > 0) return;
this.timer = setTimeout(() => {
//turn off the pop up
this.setState({ isModalVisible: false });
this.props.navigation.navigate('ParkInBuilding', {user: this.state.passedProps.user, pState:this.state.passedProps.pState, pState: this.state.passedProps.pState, actSection: 'finalpage_2A'});
this.timer = null; //not necessary if you are unmounting the component
}, 10000);
}

render() 中,我有一个模态如下:

          <Modal isVisible={this.state.isModalVisible}>
<View style={styles.timerContainer}>
<Text style={styles.orangeTextBold}>Si prega di passare il{"\n"}cancello di entrata.
<Text style={styles.itemBold}>{"\n"} </Text>
<Text style={styles.itemBold}>{"\n"}Benvenuto nel Parcheggio {this.state.parkingname}{"\n"}
</Text> </Text>
<Text style={styles.itemBold}> </Text>
<CountdownCircle
seconds={10}
radius={40}
borderWidth={8}
color="#FABB00"
bgColor="#fff"
textStyle={{ fontSize: 30 }}
onTimeElapsed={() => console.log('Elapsed!')}
/>
</View>
</Modal>

按钮:

  <View style={ styles.buttonContainer } >
<Button_yellow style={styles.buttonW} onPress={ this.onPressEnter.bind(this)} label=" Entra " icon="Mirino_giallo" />
</View>

问题是当我将 this.setState({ isModalVisible: false}); 放入 setTimeout() 时,提到的警告随机出现。 (有时我有它并且应用程序卡住,有时它工作正常)你能帮我解决这个问题吗?困扰了我一个星期!谢谢。

最佳答案

您可以在更新状态后使用 setState 回调进行导航:

this.setState({ isModalVisible: false }, () => this.props.navigation.navigate(...));

关于javascript - setState 和 setInterval 导致 "Warning: Can only update a mount or mounting component.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47902429/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com