繁体   English   中英

单击按钮时重定向到适当的页面 ReactJS/Django 项目

[英]Redirect to appropriate page while clicking on Button ReactJS/Django project

我是 Web 开发的新手,并为我的社交网络项目选择了 django/Reactjs。

我做了一些 api 方法,比如 account/view_user/ 返回用户列表和 account/view_user/ 返回特定用户的属性。

我还在 React 中写了一个页面来呈现用户列表

class PersonnelContentFeed extends React.Component {
  constructor() {
    super();

    this.state = {
      'items': []
    }
  }
  componentDidMount() {
    this.getItems();
  }

  getItems() {
    fetch('http://localhost:8000/api/account/view_user/')
    .then(results => results.json())
    .then(results => this.setState({'items': results}));
  }

  render() {
    return (
      <ul>
        {this.state.items.map(function(item, index) {
          return <PersonnelContentItem item={item} key={index} />
        })}
      </ul>
    );
  }
}

class PersonnelContentItem extends React.Component {
  render() {
    return (
      <Row className="PersonnelContentItem">
        <Col xs="3"></Col>
        <Col xs="6">
          <Card>
            <CardImg top width="100%"></CardImg>
            <CardBody>
              <CardTitle>
                <strong>{this.props.item.first_name} {this.props.item.last_name}</strong>
              </CardTitle>
              <NavLink to='./PersonDetails'><Button>
                Details
              </Button>
              </NavLink>
            </CardBody>
          </Card>
        </Col>
      </Row>
    )
  }
}

还有一个用于个人详细信息的 React 组件(类似于 PersonnelContentFeed) 问题是:

我应该怎么做才能在单击“详细信息”按钮时将用户重定向到适当的详细信息页面(使用正确的 id,例如 /api/account/view_user/1)。

谢谢大家。

看看 React Router URL 参数。 这很可能就是您要寻找的。

您可以使用以下路由将 url 路径定向到正确的组件(视图):

<Router>
  <Route exact path="/account/user-list" component={UserList} />
  <Route path='/account/user/:id' component={UserDetail} />
</Router>

通过这种方式,您可以使用 url 将用户的id作为参数传递。

您可以在 React Router Docs 中看到更多示例:

https://reacttraining.com/react-router/web/example/url-params

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM