1. 搜索时url携带参数
const urlParams = []; Object.keys(params).forEach((key) => { if (params[key]) { urlParams.push([key, params[key]].join("=")); } }); history.pushState({}, '', `?${url.join('&')}`);
2. 拿到url问号后面的参数, 转换为对象
function urlParamsToObject() { const params = new URLSearchParams(window.location.search); const paramObj = {}; for (let [key, value] of params.entries()) { paramObj[key] = value; } return paramObj; }
3. 自动恢复搜索表单的内容,这时需要用useEffect监听一下。
const initForm = () => { const _urlParams = urlParamsToObject(); // 根据需求修改参数形式 const modifiedParams = { name: _urlParams.name, age: _urlParams.age, } // 回填参数 ref.current.setFieldsValue(modifiedParams); // 提交表单数据 ref?.current?.submit(); }