reactjs - 如何在useEffect react中使用handleSubmit formik
问题描述
所以我有这样的 useEffect 。目标是对每个值应用过滤器。
useEffect(() => {
if (notifData) { //notifData is array of object
const listNotif = [];
notifData.forEach((notifItem) => {
if (notifItem.queryString) {
listNotif.push(JSON.parse(notifItem.queryString));
}
});
const queryParams = qs.parse(location.search);
if (
query.has('module') &&
query.has('search') &&
query.has('program') &&
query.has('session') &&
query.has('topic')
) {
const filterSelected = listNotif.find(
(listNotif) =>
listNotif.moduleId === Number(queryParams.module) &&
listNotif.programId === Number(queryParams.program) &&
listNotif.sessionId === Number(queryParams.session) &&
listNotif.topicId === Number(queryParams.topic),
);
if (filterSelected) {
setFieldValue('search', queryParams.search);
setFieldValue('program', {
id: queryParams.program,
title: filterSelected.programTitle,
});
setFieldValue('modules', {
id: queryParams.module,
title: filterSelected.moduleTitle,
});
setFieldValue('sessions', {
id: queryParams.session,
title: filterSelected.sessionTitle,
});
setFieldValue('topics', {
id: queryParams.topic,
title: filterSelected.topicTitle,
});
}
handleSubmit();
} else {
resetForm();
}
}
}, [location.search, notifData]);
但是,我期望这没有运行。该过滤器仅适用于贴片元件,不适用于抽屉式过滤器
在抽屉过滤器中我有这样的功能
const onApplyFilter = () => {
setFieldValue('program', {
id: valueFilter.program.id,
title: valueFilter.program.title,
});
setFieldValue('modules', {
id: valueFilter.modules.id,
title: valueFilter.modules.title,
});
setFieldValue('sessions', {
id: valueFilter.sessions.id,
title: valueFilter.sessions.title,
});
setFieldValue('topics', {
id: valueFilter.topics.id,
title: valueFilter.topics.title,
});
setFieldValue('isReplied', valueFilter.isReplied);
handleSubmit();
onCloseFilter();
};
setFieldValue 是否不适用于 initialValues?我是formik的新手,还是在useEffect中处理提交?
解决方案
推荐阅读
- powershell - 在没有用户迭代的情况下运行 powershell
- jenkins - 如何从 Jenkins 的 Bitbucket 源中排除分支
- javascript - DOM 节点不会在 if 条件下使用带有元素样式 Reactjs 的 useRef() 线夹进行更新
- ms-access - 在 Access 2013 中将两个报表合并为一个
- navbar - 自动换行在 react-bootstrap 导航栏中不起作用
- python - How to create a column with a count of rows between two values of another column in pandas
- r - 在 R 中为金字塔图格式化数据
- junit - JUnit5 - 并行执行@ParameterizedTest
- c# - Jquery DataTable 客户端分页、搜索、过滤以及使用版本 1.10.24 的服务器端数据
- google-search - 禁用谷歌显示股市信息