reactjs - 与查询参数一起使用时,React-router 重定向到 404

标签 reactjs redux react-router

当用户提交搜索查询时,我需要根据该查询更改浏览器中的地址(Google 所做的事情很熟悉)。当我这样做时,地址会正确更改,但它会将我重定向到我的 404 路由。当我手动向地址栏输入文本时,我可以看到正确的页面。

这是我的路线的一部分:

...
<Route path="some-address" component={MyComponent}>
    <Route  path=":query" />
</Route>
...

这是我的组件的简化版本:

@withRouter
@connect(...)
export default class MyComponent extends Component {
    ...
    render() {
        return (
            <form onSubmit={(e) => {
                e.preventDefault(); 
                this.props.router.push(e.target.myInput.value)}}
            >
                <input name="myInput" />
            </form>
    }
}

React Router 是 2.6.1 版本。

最佳答案

这就是我设法解决这个问题的方法:

    @withRouter
    @connect(...)
    export default class MyComponent extends Component {
        ...
        render() {
            return (
                <form onSubmit={(e) => {
                    e.preventDefault(); 
                    this.props.router.push({
                        pathname: this.props.location.pathname,
                        query: e.target.myInput.value && {search: e.target.myInput.value}
                    })
                }}>
                    <input name="myInput" />
                </form>
        }
    }

关于reactjs - 与查询参数一起使用时,React-router 重定向到 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39348147/

相关文章:

reactjs - React Semantic UI - 将图标放置在菜单项中文本的左侧

apache - create-react-app 在 LAMP/XAMPP/WAMP 上构建部署

javascript - React Native Firebase DataSnapshot

reactjs - 将规范化器与 ReduxForm 一起使用会导致表单始终脏乱

javascript - 如何使用 FileUpload 向受 Azure AD 保护的 REST API 发出 REST API 发布请求

reactjs - 路由更改时重置组件的内部状态

javascript - 子组件值到父组件显示React Native

reactjs - 如果存在则从商店获取数据,否则在 React 中调用 API

reactjs - react 路由器 : Add types to NavLink isActive() function

javascript - 在 Redux reducer 中对对象数组进行排序