1
我很努力地理解哪裏是處理成功提交和導航到下一頁的最佳實踐。Redux表單導航提交成功
我正在登錄表單上:
class LogInComponent extends Component {
render() {
const {dispatch} = this.props;
const {loginError, handleSubmit, pristine, reset, submitting} = this.props;
return (
<form onSubmit={handleSubmit((values) => dispatch(login(values))) }>
<Field name="username" type="text" component={renderField} label="Username" />
<Field name="password" type="password" component={renderField} label="Password" />
{loginError && <strong>{loginError}</strong>}
<div>
<button type="submit" disabled={submitting}>Log In</button>
<button type="button" disabled={pristine || submitting} onClick={reset}>Clear Values</button>
</div>
</form>
)
}
和動作:
export function login(values) {
const email = values.username;
const password = values.password;
return dispatch => {
dispatch(loginSubmit());
firebaseAuth.signInWithEmailAndPassword(email, password).then(function(user) {
dispatch(signInSuccess(user));
}).catch(function(error) {
dispatch(signInError(error));
});
};
}
export function loginSubmit() {
return {
type: SIGN_IN_SUBMIT
};
}
export function signInError(error) {
return {
type: SIGN_IN_ERROR,
payload: error.message
};
}
export function signInSuccess(user) {
return {
type: SIGN_IN_SUCCESS,
payload: user
};
}
如果響應是成功的,我想導航到下一個頁面。但導航應該在哪裏?不是從減速器或行動,所以只從組件,但行動不會回覆設計。 我錯過了什麼?
到目前爲止,我使用'browserHistory'從裏面'反應,router'我在生產模式下操作沒有問題。所以如果你在'dispatch(signInSuccess(user))之下放置'broswerHistory.push(yourLink)'''它應該就好了。 –