У меня есть действие
export const saveNewTask = (taskName, taskDescription) => async dispatch => {
console.log(taskName, taskDescription);
const res = await axios.post('/api/add-new-task', {
taskName,
taskDescription
});
console.log(res);
dispatch({ type: SAVE_TASK, payload: res.data });
};
родительский контейнер, который содержит дочерний контейнер, который является формой Formik и должен позволить дочернему компоненту сохранять содержимое формы Formik в БД с помощью вышеупомянутого действия.
import { saveNewTask } from '../actions/index';
class ClientDashboard extends React.Component {
render() {
return <NewTask saveNewTask={saveNewTask()} />;
}
}
export default connect(null, { saveNewTask })(Container);
NewTask. js дочерний компонент, который ничего не знает о Redux:
function NewTask(props) {
const formik = useFormik({
initialValues: {
taskName: '',
taskDescription: ''
},
onSubmit: values => {
// alert(JSON.stringify(values, null, 2));
props.saveNewTask(values.taskName, values.taskDescription);
}
});
...
}
, но действие никогда не получает параметры, которые я пытаюсь передать через компонент Formik (закомментированная строка предупреждения отображает оба значения в совершенстве) и говорит, что taskName
и taskDescription
не определены. Также в последней строке действия говорится:
Uncaught (in promise) TypeError: dispatch is not a function at Object.saveNewTask
Я думаю, что это скорее синтаксическая ошибка, чем любая другая, но любая помощь будет принята с благодарностью.