javascript - 将搜索结果传递给反应中的另一个页面/组件
问题描述
我想搜索我的数据,然后在搜索完成后我想在新页面中显示结果;这是我的搜索页面,我想在另一个名为 result 的页面/组件中显示结果:
结果将仅显示第二次单击/输入!
function SearchBar() { const [allData,setAllData] = useState([]); const [filteredData,setFilteredData] = useState(allData); const [searchTerm , setSearchTerm] = useState('') const dispatch = useDispatch() const searchItems = useSelector((state) => state.searchItems) const { loading, filtered} = searchItems; const getJobs=()=>{ dispatch(SEARCHAction()); setFilteredData(filtered) } const handleSearch = (e) =>{ e.preventDefault(); getJobs(); } return ( <form> <div> <input onChange={e=>setSearchTerm(e.target.value)} id="search-input" type="text" className="form-control job-field lg:col-span-9 h-12 px-3 outline-none" placeholder="job title, keywords or company name" /> <button type="submit" onSubmit={handleSearch} className="btn search-btn border-0 lg:col-span-3"> <i className="fa fa-search mx-1"></i> </button> </div> </form> </div> ) }
解决方案
怎么了:
filtered
仅在 react 重新渲染时更新。这意味着当您第一次按下按钮时,它会调度。但是filtered
,您推送到状态的变量仍然具有旧值。
你想做什么:
正如 Sachin 建议的那样,有一个额外的页面:/results?keyword=value
. 在方法中重定向到该页面getJobs
。在新页面中,从 url 读取值并在那里过滤。
推荐阅读
- html - VBA按钮单击具有相同的类(无ID,无类名)
- sql - 有没有办法使用 SQL Developer 中的查询生成的数据自动填写 PDF 表单?
- pycharm - 如何在pycharm中向黑色格式化程序添加其他设置
- vba - Webbrowser2_newwindow2 打开空白 newwindow2
- c# - 状态类作为单元类的变量
- javascript - 未定义硒测试后的功能
- haproxy - haproxy 在 ACL 表达式中缺少 fetch 方法
- python - 编写将使用 min max 方法或 z-score 方法进行归一化的函数
- c# - 处理做同步工作的异步函数
- php - PHP Mailer 显示错误:Mailer 错误 smtp 连接失败。怎么修?