我已经在父组件中使用了setSearchParams
钩子,它根据来自input
JSX元素的输入设置query
.现在,我需要实现第二个搜索参数=sortBy
,但不是擦除已经存在的或可能是现有的query
个搜索参数,我每次都需要执行if()chech.
我现在还需要if()签入sortBy
个参数的父元素.我可能会在不同的Reaction组件中引入更多的搜索参数--这会使代码变得混乱.
有没有更好的方法来处理分散在您的项目中的多个搜索参数?
import { useSearchParams } from 'react-router-dom';
const titles = ['Name', 'Sex', 'Born', 'Died', 'Father', 'Mother', 'Slug'];
export const TableHead = () => {
const [searchParams, setSearchParams] = useSearchParams();
const query = searchParams.get('query');
return (
<tr className="person">
{
titles.map(el => (
<th
key={el}
onClick={() => {
if (query) {
setSearchParams({ query, sortBy: el.toLowerCase() });
} else {
setSearchParams({ sortBy: el.toLowerCase() });
}
}}
>
{el}
</th>
))
}
</tr>
);
};