javascript - 如何在reactjs中使用条件语句渲染组件?

标签 javascript node.js reactjs if-statement jsx

这是我的示例代码。

import React, { Component } from "react";
import Navpills from "./Navpills";
import Home from "./pages/Home";
import About from "./pages/About";
import Blog from "./pages/Blog";
import Contact from "./pages/Contact";

class PortfolioContainer extends Component {
  state = {
    currentPage: "Home"
  };

  handlePageChange = page => {
    this.setState({ currentPage: page });
  };

  render() {
    return (
      <div>
        <Navpills
          currentPage={this.state.currentPage}
          handlePageChange={this.handlePageChange}
        />
        Based on `this.state.currentPage`, render the appropriate component
        here.
      </div>
    );
  }
}

export default PortfolioContainer;

说明如下:

现在将代码添加到 PortfolioContainer这样,根据当前选择的页面,不同的组件会呈现在Navpills下方。成分。示例:

  • 渲染About组件时this.state.currentPage === "About"

  • 渲染Blog组件时this.state.currentPage === "Blog"

  • 渲染Contact组件时this.state.currentPage === "Contact"

  • 渲染Home组件时this.state.currentPage === "Home"

最佳答案

您可以使用以下语法有条件地渲染组件:

render() {
    return (
      <div>
        <Navpills
          currentPage={this.state.currentPage}
          handlePageChange={this.handlePageChange}
        />
        {this.state.currentPage === "About" && <About />}
        here.
      </div>
    );
  }

但就您而言,最好使用 react-router .

关于javascript - 如何在reactjs中使用条件语句渲染组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48174558/

相关文章:

javascript - 为什么这个 reduce 方法不给我对象?

javascript - 监听可触摸元素内的按下事件的元素

javascript - React React setState 第一次尝试时未更新

javascript - 从 javascript 生成的动态输入中获取值

javascript - 如何限制 react-redux 连接更新重新渲染到特定状态分支?

node.js - 如何通过socket.io向离线/在线用户发送聊天通知?

javascript - 用换行符替换字符串中的 <br> 标签 JS

javascript - 删除评论留下空白

javascript - mousemove 在控制台打开时更频繁地触发?

javascript - 等待 NodeJS 中的异步方法