私はパスワードを忘れた形式で作業しています。ユーザーがフォームに記入したとき - 私はフォームに感謝のメッセージを置きたいと思って、5秒後にユーザーをログインページにリダイレクトします。 forgotData状態を空にして、ユーザーがフォームに戻ることができるようにするか、リフレッシュするなどして再度入力します。Reactjs - x秒後にリダイレクトして状態をリセットします。
私の現在のコードは次のようになります。 componentWillUnmountの状態ですが、動作しません。
<Redirect refresh='5' to='/login' >
^そういうことがありますか?
忘れたページは次のようになります。
import React, { Component } from 'react'
import { withRouter, Redirect } from 'react-router-dom';
import { connect } from 'react-redux';
import { bindActionCreators } from 'redux';
import { fetchForget } from '../../actions/forgotAction';
import { Row, Col } from 'antd';
// components
import ForgotPasswordSyncValidationForm from './ForgotPasswordSyncValidationForm'
// this is a class because it needs state
class ForgotPassword extends Component {
constructor(props, context) {
super(props, context);
this.submit = this.submit.bind(this);
}
componentDidMount() {
// console.log('this', this)
}
componentWillMount() {
document.body.classList.add('screenbackground');
}
componentWillUnmount() {
document.body.classList.remove('screenbackground');
this.state = {
forgotData: null
}
}
submit(data) {
this.props.fetchForget(data);
}
render() {
// when the user has applied for a new password
/*
if(this.props.forgotData.isForgot){
setTimeout(function() {
return <Redirect to='/login'/>;
}.bind(this), 5000);
}
console.log(this.props.forgotData)
*/
return (
<div className="Page form-components dark">
<h2>Forgot Password?</h2>
<Row>
<Col xs={24} sm={24} md={10}>
<p>A message here about what this forgot form is about</p>
</Col>
<Col xs={24} sm={24} md={24}>
<Row>
<Col xs={24} sm={24} md={6}>
{!this.props.forgotData.isForgot ? (
<ForgotPasswordSyncValidationForm onSubmit={this.submit} />
) : (
<div>
<p>Thank you for filling in the forgot password form. We have generated a new password for you, please check your email.</p>
<Redirect to='/login'/>
</div>
)}
</Col>
</Row>
</Col>
</Row>
<div className="shell" />
<div className="screen-background forgot" />
</div>
)
}
}
function mapStateToProps(state) {
return {
forgotData: state.forgot
};
}
function mapDispatchToProps(dispatch) {
return bindActionCreators({ fetchForget }, dispatch);
}
export default withRouter(connect(mapStateToProps, mapDispatchToProps)(ForgotPassword))
便利ですか?ログアウト状態を作成する必要があります - https://stackoverflow.com/questions/35622588/how-to-reset-the-state-of-a-redux-store –
https://stackoverflow.com/questions/43230194/how-to-use-redirect-in-the-new-react-router-of-reactjs –
現在の動作と目的の動作の違いは何ですか? –