【发布时间】:2022-01-12 10:56:00
【问题描述】:
删除多个字符串参数时出现问题。现在只删除最后一个参数。
upd:我没有指定我想要实现移除特定参数值的能力
此代码无法正常工作:
const updateFiltersSearchParams = (paramKey, newValue) => {
const isParamExist = searchParams.getAll(paramKey).includes(newValue);
if (!isParamExist) {
searchParams.append(paramKey, newValue);
setSearchParams(searchParams);
} else {
const updatedSearchParams = new URLSearchParams(
[...searchParams].filter(
([key, value]) => key !== paramKey || value !== newValue
)
);
setSearchParams(updatedSearchParams);
}
};
const handleDeleteParams = () => {
[...checkboxParams].forEach((param) => {
updateFiltersSearchParams("selected", param);
});
};
【问题讨论】:
-
在
forEach中快速设置状态而不基于状态先前值的更改,可能会导致更改似乎被跳过。 -
@DBS 我怎样才能考虑到以前的值?
标签: javascript reactjs react-router-dom