【问题标题】:React js rendering link with photo and mount another component after clickingReact js渲染链接与照片并点击后挂载另一个组件
【发布时间】:2019-03-14 17:24:21
【问题描述】:

这是我在这里的第一个问题,我是新人:),

我有一个 API,我正在尝试对其进行映射并创建带有照片的链接,因此当用户单击照片时,我想从该帖子中呈现具有更多详细信息的另一个组件。 API 有 300 多个项目,所以我需要一些专业的东西来实现它

我尝试映射路线并将其放在 Switch + 映射包含照片的链接。浏览器将路由到该地址,但另一个组件不会挂载或挂载在主组件下。一个多星期以来,我一直在尝试/寻求解决此问题。

提前感谢大家

【问题讨论】:

  • 如果你能在这里分享一些代码会很有帮助
  • 欢迎来到 StackOverflow。请阅读有关如何提出好问题的帮助部分,因为这将有助于社区更好地了解您的问题并为您提供好的答案:stackoverflow.com/help/how-to-ask

标签: reactjs api routes switch-statement


【解决方案1】:

如果您需要在具有不同 url 的单独页面上显示详细信息,您可以使用 react-router 之类的内容。如果您只需要在同一页面中显示其他详细信息,则可以使用以下内容:

class Image extends React.PureComponent {
  constructor(props) {
    super(props);

    this.state = {
      showDetails: false,
    };

    this.onImageClick = this.onImageClick.bind(this);
  }

  onImageClick() {
    this.setState({ showDetails: true });
  }

  renderDetails() {
    if (!this.state.showDetails) {
      return;
    }

    return (
      <div>
        Additional details
      </div>
    );
  }

  render() {
    return (
      <div>
        <img src={this.props.src} onClick={this.onImageClick} />
        {this.renderDetails()}
      </div>
    );
  }
}

function ImagesList({ images }) {
  return (
    <div>
      {images.map((data) => (
        <Image key={data.someKey} {...data} />
      ))}
    </div>
  );
}

【讨论】:

  • 感谢您的回答,但我也尝试过路由器,但我不知道如何使用 Route 或 Link 将道具传递给下一个组件
  • @NimaMalaeri 您可以为此使用参数化网址。您可以参考此示例了解更多信息:reacttraining.com/react-router/web/example/url-params
猜你喜欢
  • 2016-07-02
  • 2018-01-26
  • 2019-03-20
  • 1970-01-01
  • 2020-03-22
  • 2022-12-19
  • 2017-07-14
  • 2019-10-03
  • 1970-01-01
相关资源
最近更新 更多