我的应用程序有过滤器。我想做浅层路由,并在用户更改过滤器同时更新我的应用程序状态时将查询添加到 URL。但这似乎我在维持两种状态。有没有这方面的最佳实践?因为我希望我的 url 匹配应用程序状态
问问题
1499 次
1 回答
3
从 url 派生您的应用程序状态。这意味着您需要更改 url,应用程序将重新渲染 -> 从 url 派生新状态。
// somePage.jsx
import { useRouter } from 'next/router';
import { useState, useEffect } from 'react';
const somePage = () => {
const router = useRouter();
const [myState, setMyState] = useState({ page: 1 });
useEffect(() => {
setState({ page: query.page });
}, [router.query.page]);
return (
<div>
{JSON.stringify(myState)}
{[1, 2, 3, 4, 5].map(page => (
<Link href={`?page=${page}`} key={page}>
<a>page {page}</a>
</Link>
))}
</div>
);
};
export default somePage;
于 2020-02-06T18:34:13.380 回答