dva生成的项目里面用到的react-router中的location参数缺失?

用dva-cli生成的项目里面,history中的location参数中怎么没有query,只有search。这样取值会太麻烦!请问有知道怎么解决的吗?

下面的是router

import Users from "./routes/Users.js";

function RouterConfig({ history }) {
    console.log(history)
  return (
    <Router history={history}>
      <Switch>
        <Route path="/" exact component={IndexPage} />
        <Route path="/users" component={Users} />
      </Switch>
    </Router>
  );
}

export default RouterConfig;

下面的是组件,路由是这样的http://localhost:8000/#/users?page=1

import React from 'react';
import { connect } from 'dva';
import styles from './Users.css';

class Users extends React.Component{
    render() {
        console.log(this.props)
        console.log(this.props.location.search)
        return(
            <div className={styles.normal}>
              Route Component: Users
            </div>    
        )
    }
}

const mapStateToProps = () => {
    return{

    }
}

export default connect(mapStateToProps)(Users);

获取回来的参数值只有这些
图片描述

阅读 9.5k
2 个回答

路由中这么配置

'/student/:id': { ... }

url传参这么写

/student/123

获取参数是这样

this.props.match.params.id

你用的DVA版本应该是使用了react-routerv4,4版本中loaction对象里没有这个query属性了。
详见issue里讨论#4410

推荐使用任何一个stringifyQuery库处理相同的业务,比如:qsquery-string

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题