gpt4 book ai didi

react-router - react 路由器重定向到索引

转载 作者:行者123 更新时间:2023-12-03 19:44:17 26 4
gpt4 key购买 nike

我正在使用 Reactjs、React Router 和 Relay。问题是:在我的程序组件中,我单击的所有链接都重定向到主页,而元素的 url 显示的正是我所期望的。例如:如果我单击指向/community/2/program/3 的链接,它会将我重定向到主页,但是当我将/community/2/program/3 输入到浏览器地址栏时,我可以访问该页面。

我的 index.js:

const rootNode = document.createElement('div');
document.body.appendChild(rootNode);

ReactDOM.render(
<Router
history={browserHistory}
routes={Route}
render={applyRouterMiddleware(useRelay)}
forceFetch
environment={Relay.Store}
/>,
rootNode
);

我的路线:
import React from 'react';
import { IndexRoute, Route, Redirect } from 'react-router';

// Queries
import ViewerQuery from './ViewerQuery';
import ProgramQuery from './ProgramQuery';

// Component
import AppContainer from '../components/App/AppContainer';
import FeatureContainer from '../components/Feature/FeatureContainer';

// Container
import ProgramContainer from '../components/Program/ProgramContainer';
import UserContainer from '../components/User/UserContainer';

export default (
<Route path='/' component={AppContainer} queries={ViewerQuery}>
<IndexRoute component={FeatureContainer} queries={ViewerQuery} />
<Route path='/community/:cid' component={ProgramContainer} queries={ProgramQuery} />
<Route path='/community/:cid/program/:gid' component={UserContainer} queries={ProgramQuery} />
<Redirect from='*' to='/' />
</Route>
);

程序组件:
return (
<ListGroup style = {{paddingLeft: 50, paddingRight: 50, marginBottom:0}}>
{this.props.viewer.groups.map((group) => {
return (
<Col key={group.groupId} xs={12} md={4} style={{marginTop: 20}}>
<Card shadow={0} style={{width: '100%'}}>
<CardTitle className = {styles.cardTitleBox} style={{color: 'white', height: '176px'}}>
{group.name}
</CardTitle>
<CardText>
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Mauris sagittis pellentesque lacus eleifend lacinia...
</CardText>
<CardActions border>
<Button colored>
<Link style = {{textDecoration: 'none'}} to= {`${this.props.params.cid}/program/${group.groupId}`}>
{group.name}
</Link>
</Button>
</CardActions>
</Card>
</Col>

);
})}
</ListGroup>
)

最佳答案

关于“链接”组件的 Prop “to”的官方文档(参见 https://github.com/ReactTraining/react-router/blob/v3/docs/API.md#link )指出:

If it's a string it represents the absolute path to link to, e.g. /users/123 (relative paths are not supported).



因此,将链接的路径更改为绝对 url /community/${this.props.params.cid}/program/${group.groupId}解决了这个问题。

关于react-router - react 路由器重定向到索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40168208/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com