我在我的应用中使用了本机的React Router,有人告诉我将路由包装在组件中,以便显示和使用android设备后退按钮,如下所示:
<NativeRouter>
<BackButton>
<View style={styles.container}>
<Switch>
<Route path="/TelUtiles" component={TelUtiles} />
<Route exact path="/:resp?" component={Main} />
<PrivateRoute path="/protected/:username?" component={UserPage} />
</Switch>
</View>
</BackButton>
</NativeRouter>
它正常工作,直到您尝试使用不正确的ID登录,接收到错误,然后使用正确的ID登录,按后退按钮并再次显示错误消息为止。 像这样在主要组件中检查收到的消息:
constructor(props) {
super(props);
this.state = {
username: '',
checked: false,
isModalVisible_noDni: false,
isModalVisible_DniIncorrecto: false
}
if (props.match.params.resp == "dni_incorrecto") {
this.state.isModalVisible_DniIncorrecto=true;
} else if (props.match.params.resp == "sin_serv_vet") {
this.state.isModalVisible_SinServVet=true;
} else if (props.match.params.resp == "sin_mascotas") {
this.state.isModalVisible_SinMasco=true;
}
}
因此,当按下Backbutton时,props.match.params.resp
似乎保留了该消息。我该如何防止这种行为?。