javascript - 在它之前创建带有一些文本的动态链接
问题描述
我正在为自定义项目构建搜索引擎。
我有一个搜索栏,用户可以从中搜索。
当用户搜索时,我希望给定的链接能像谷歌一样工作
www.google.com/搜索?查询相关信息
注意到搜索了吗?然后是任何查询/参数/ID
为此,我尝试了这样的事情
import React, {Component} from 'react';
import {
BrowserRouter,
Route,
Switch,
Redirect,
} from 'react-router-dom';
import SearchScreen from "./container/searchScreen.js"
import HomeScreen from "./container/home.js";
class route extends Component {
render () {
return (
<BrowserRouter>
<div>
<Switch>
<Route path ="/" exact render ={(props) => <HomeScreen {...props}/>} />
<Route path ="/search?:id" exact render ={(props) => <SearchScreen {...props}/>} />
</Switch>
</div>
</BrowserRouter>
)
}
}
export default route
注意, <Route path ="/search?:id"
以上。
不幸的是,这并没有成功。
我知道<Route path ="/:id
"有效,但我怎样才能<Route path ="/search?:id
工作,即我怎样才能使一些链接像http://localhost:3000/search?9e9e工作
解决方案
我认为这与historyApiFallback 有关。那个参数;( https://webpack.js.org/configuration/dev-server/#devserver-historyapifallback )
使用 HTML5 History API 时,可能必须提供 index.html 页面来代替任何 404 响应。devServer.historyApiFallback 默认禁用。通过传递启用它:
module.exports = {
//...
devServer: {
historyApiFallback: true
}
};
您的反应应用程序是单页应用程序。因此,除了主路径之外的所有路径实际上都是虚拟路径,它们在物理上并不存在。路径必须路由到主路径。所以 react-router 可以管理。
推荐阅读
- php-7.2 - 如何在 Centos7 上成功安装 libsodium (for php7.2)?
- excel - 复制/粘贴宏的各种运行时错误
- ios - 通过 userDeafults 在两个视图控制器之间共享数据
- curl - 刷新 keycloak 访问令牌给出 ssl3_get_record:wrong version number
- ios - Xcode 11:IBCocoaTouchImageCatalogTool,无法为文件创建图像
- python - 如何使用 python 从 AWS 的多个区域读取值?
- c# - 遍历复杂的json对象C#
- reactjs - 如何在 Redux-Form 中禁用 Chrome 自动完成功能
- python - 根据条件使用现有列中的值将两个新列附加到 datframe
- angular - 使用 teamcity 开关运行测试时没有成功或失败通知