我有一个包含主要内容的 React 站点。我想使用search-ui在网站上进行搜索。
搜索栏应该在旁边,当用户搜索某些东西时,结果应该显示在主要内容上。除了和主要内容是两个独立的反应组件。
在我身边,我正在像这样配置 search-ui SearchBox
<SearchBox
autocompleteResults={{
titleField: "title",
urlField: "url"
}}
autocompleteSuggestions={true}
onSubmit={searchTerm => {
navigate("/elastic-search?q=" + searchTerm);
}}
onSelectAutocomplete={(selection, {}, defaultOnSelectAutocomplete) => {
if (selection.suggestion) {
navigate("/elastic-search?q=" + selection.suggestion);
} else {
defaultOnSelectAutocomplete(selection);
}
}}
/>
因此,当用户搜索某些内容时,应用程序将重定向到名为 elastic-search 的单独页面,并且我通过导航方法在 URL 中传递 searchTerm。
在 MainContent 我有这样的结果:
<Results titleField='title' urlField='url'/>
现在的问题是如何获取 searchTerm 并在主要内容上显示结果。应用程序的结构是这样的:
<App>
<SearchProvider config={config}>
<Aside /> ---- Here I have <SearchBox>
<MainContent /> ---- Here I have <Results>
</SearchProvider>
</App>
当我在 URL 中使用 searchTerm 搜索应用程序时重定向到 /elastic-search,但结果未显示。如果我刷新页面,它们就会显示出来。如何通知结果或重新呈现页面,以便显示搜索结果。