Javascript React Router DOM | URL被重定向到根路径

Javascript React Router DOM | URL被重定向到根路径,javascript,reactjs,redux,react-router-v4,redux-observable,Javascript,Reactjs,Redux,React Router V4,Redux Observable,我已经用DOM设置了一个批准者。第4版。我有一个带有链接的表,我从服务器获取每个表的数据。当我单击表中的链接时,我想查看每个项目的详细信息屏幕。那不行 下面是Approver,它是应用程序的路由器。所有其他路线运行良好,仅供参考: import React from 'react'; import PropsTypes from 'prop-types'; import { withProps } from 'recompose'; import ReactRouterPropTypes fro

我已经用DOM设置了一个批准者。第4版。我有一个带有链接的表,我从服务器获取每个表的数据。当我单击表中的链接时,我想查看每个项目的详细信息屏幕。那不行

下面是Approver,它是应用程序的路由器。所有其他路线运行良好,仅供参考:

import React from 'react';
import PropsTypes from 'prop-types';
import { withProps } from 'recompose';
import ReactRouterPropTypes from 'react-router-prop-types';
import { Route, Switch, Redirect, withRouter } from 'react-router-dom';
import { connect } from 'react-redux';

import { Authorization } from 'util/viewPermissionUtil';
import { Permission } from 'util/permissionsUtil';
import permissions from 'constants/roles';

import GroupDetailsScreen from 'GroupDetailsScreen';
import GroupsScreen from 'GroupScreen';
import UsersScreen from 'containers/UserScreen';

const GetUser = Authorization(({ user }) =>
  Permission(user, [permissions.somepermission])
);

const AuthUsers = GetUser(
  ({ ...props }) => <UsersScreen {...props} />,
  () => <Redirect to="/" />
);

const GetGroupsDetails = Authorization(({ user }) =>
  Permission(user, [permissions.someOtherPermissions])
);

const AuthGroupDetails = GetGroupsDetails(
  ({ ...props }) => <GroupDetailsScreen {...props} />,
  () => <Redirect to="/" />
);

const UsersRoute = ({ user }) => withProps({ user })(AuthUsers);
const GroupDetailsRoute = ({ user }) => withProps({ user })(AuthGroupDetails)

const Router = ({ match: { path }, user }) => (
  <Switch>
    <Route path={`${path}/groups`} component={GroupsScreen} />
    <Route path={`${path}/groups/details/:name`} component={GroupDetailsRoute({ user })} />
    <Route path={`${path}/users`} component={UsersRoute({ user })} />
    <Redirect to={`${path}/users`} />
  </Switch>
);

Router.propTypes = {
  match: ReactRouterPropTypes.match.isRequired,
  user: PropsTypes.object
};

function mapStateToProps(state) {
  return {
    user: state.auth.user
  };
}

const ConnectedRouter = connect(mapStateToProps)(Router);
const AppRouter = withRouter(({ ...props }) => <ConnectedRouter {...props} />);

export default AppRouter;
我是说这里有什么问题。我真的一点也不明白。我尝试了几个不同的场景

我尝试在AppRouter中手动插入一个BrowserRouter,不过,该路由器在应用程序链中设置得更高,
无法工作

我尝试将端点数据作为常量文件手动插入。没有进行API调用,
就无法工作

我得到了
URL
,只改变了一秒钟,但在刷新时,它确实返回到
/
。我真的被难住了。我用相同的方法在两个不同的实例中实现了相同的体系结构。工作得很好。完全一样

我的应用程序基于
React/Redux/Redux Observable
构建,用于异步操作。另一方面。我还将
getGroup
服务传递到我的
GroupDetailsScreen
以获取数据或错误消息,但问题在于路由器。我在
URL
上获得了
groupName
,但由于某种原因被重定向。发生了什么事

我刚刚发现的一个小更新。看起来,react路由器dom的URL正在删除一个参数。我的意思是这

在TableOverview屏幕上,URL是
localhost:3000/something/groups

但当我点击链接时,它会转到
localhost:3000/groups/details/name
。 **

我在Github上读到关于这个问题的文章:,还没有找到一个可靠的解决方案。但是我可以在这里添加
一些东西

pathname: `something/groups/details/${row.name}`
这是一个非常奇怪的解决方案,我不愿意继续。开发是好的,但我需要找到一个解决方案。欢迎任何意见。


有人能告诉我我在这里做了什么蠢事,却不管用吗。谢谢

如果你看到小的拼写错误,请不要回答。我更改了文件和组件的名称,因为它们太暴露了。应用程序没有输入错误…请尝试在此处添加
exact
是的,我试过了。什么都没有发生。尽管如此,URL还是会更改,但会被重定向…为了反复说明我对此的失望程度,我还有一个deleteRendere,对于每个表行,它具有相同的API端点,调用row.name,并且该行会被删除。
import { endpointInstance } from 'services/httpFactory';
import httpMethod from 'constants/httpMethod';

import endpoint from './endpoint';

export const getGroup = name => {
  const options = {
    method: httpMethod.GET,
    url: endpoint.GET_GROUP(name)
  };
  return endpointInstance(options);
};
pathname: `something/groups/details/${row.name}`