Я получаю бесконечный цикл, когда пытаюсь подключить свой компонент формы к избыточному.Было бы смешно, если бы это не расстраивало, потому что код работал раньше сегодня, а теперь нет после того, как я вернул 1 коммит.
Код был почти таким же, и connect () () работал, и у меня была функция signUserUp, доступная как prop для работы.Я удалил node_modules и package-lock на всякий случай и установил все заново, и это то же самое.
Registration.js
import { connect } from "react-redux";
import signupActions from "../modules/signup";
function Signup() {
return <BasicForm />
}
const BasicForm = () => (
<Formik
initialValues={{ email: "", password: "", confirmPassword: "" }}
validationSchema={signupSchema}
onSubmit={(values, actions) => {
console.log("form data: ", values);
}}
render={({ values, errors, touched, isSubmitting, handleChange, handleBlur, handleSubmit }) => (
<Container>
<Form onSubmit={handleSubmit}>
<Form.Input
type="text"
placeholder="Email"
onChange={handleChange}
onBlur={handleBlur}
value={values.email}
name="email"
/>
{errors.email && touched.email && <div>{errors.email}</div>}
<Form.Input
type="password"
placeholder="Password"
onChange={handleChange}
onBlur={handleBlur}
value={values.password}
name="password"
/>
{errors.password && touched.password && <div>{errors.password}</div>}
<Form.Input
type="password"
placeholder="Confirm Password"
onChange={handleChange}
onBlur={handleBlur}
value={values.confirmPassword}
name="confirmPassword"
/>
{errors.confirmPassword && touched.confirmPassword && <div>{errors.confirmPassword}</div>}
<Button primary type="submit" onSubmit={handleSubmit} disabled={isSubmitting}>
Submit
</Button>
</Form>
</Container>
)}
/>
);
export default connect(
null,
signupActions
)(Signup);
Я получаю ошибку здесь, очевидно, когдая добавляю соединение ...
Это единственный файловый модуль с редуксом signup.js
import api from '../utils/api';
const SIGN_UP = 'signup/SIGN_UP';
const initialState = {
isAuthenticated: false,
jwt: '',
authError: '',
formErrors: [],
};
export default (state = initialState, action = {}) => {
switch (action.type) {
case SIGN_UP:
return { ...state, isAuthenticated: true, jwt: action.payload, authError: '', formErrors: [] };
default:
return state;
}
};
export const signup = token => ({
type: SIGN_UP,
payload: token,
});
export const signUserUp = credentials => {
return dispatch => api.post('auth/signup', credentials).then(token => dispatch(signup(token)));
};
In rootReducer.js iимпортируйте этот signupReducer следующим образом
import signupReducer from './modules/signup';
export default combineReducers({
signup: signupReducer,
});
. Вот пример codesandbox , чтобы увидеть ошибки, по крайней мере, когда я пытаюсь посетить страницу регистрации.