【发布时间】:2020-01-25 12:17:36
【问题描述】:
我想知道如何在 router.query 中设置或取消设置参数。
在示例中,我有 2 个复选框,当我切换 a 时,我希望查询值 a 切换,而当我切换 b 时,我希望查询值 b 切换。
这是示例代码:
import { useState, useEffect } from "react";
import { withRouter } from "next/router";
import Layout from "../components/Layout";
const Test = ({ router }) => {
const [query, setQuery] = useState(router.query);
const changeQuery = val => e =>
setQuery({ ...query, [val]: e.target.checked });
const { a, b } = query;
useEffect(() => {
//what do I do here to set query param?
}, [a, b]);
return (
<Layout>
<pre>{JSON.stringify(router.query, undefined, 2)}</pre>
a:
<input
type="checkbox"
value="a"
checked={a}
onChange={changeQuery("a")}
/>
b:
<input
type="checkbox"
value="b"
checked={b}
onChange={changeQuery("b")}
/>
</Layout>
);
};
export default withRouter(Test);
【问题讨论】: