当前位置: 首页 > 面试题库 >

单击按钮时在React中进行条件渲染

阎嘉荣
2023-03-14
问题内容

我想在按钮单击时使用条件渲染组件,我编写了以下代码,但不起作用,当我单击漫画时,应加载漫画组件,而当我单击竞赛按钮时,应加载竞赛组件,有人可以帮忙吗下面是代码和CSS文件

class Head extends Component{

    constructor(){

        super();

        this.state = {

         buttonId: null

        }

        this.setButton = this.setButton.bind(this);

      }

      setButton(id){

        this.setState({buttonId: id});

      }

    render(){

        if(this.state.buttonId == 1){

            <Comic/>

        }

        else if(this.state.buttonId == 2){

            <Contest/>

        }

        else {

            <Comic/>

        }

        return(

        <div>

             <input className={this.state.buttonId === 1? "button1 orange" :

              "button1"} onClick={() => this.setButton(1)} value="Comic"

               type="button" ref="button" />

            <input className={this.state.buttonId === 2? "button2 orange" :

            "button2"} onClick={() => this.setButton(2)}  value="Contest"

             ref="button1" type="button" />



         </div>

         );

       }

    }



export default Head;








      input[type="button"]{

    background-color: white;

  }

    input[type="button"].orange{

    background-color: orange;

  }

问题答案:

您不退还组件,请尝试以下操作:

class Head extends Component{
    constructor(){
        super();
        this.state = {
         buttonId: null
        }
        this.setButton = this.setButton.bind(this);
      }
      setButton(id){
        this.setState({buttonId: id});
      }
    render(){
        return(
        <div>
             {this.state.buttonId === 1 && <Comic/>}
             {this.state.buttonId === 2 && <Contest/>}
             {this.state.buttonId !== 1  && this.state.buttonId !== 2 && <Comic/>}
             <input className={this.state.buttonId === 1? "button1 orange" : 
              "button1"} onClick={() => this.setButton(1)} value="Comic" 
               type="button" ref="button" />
            <input className={this.state.buttonId === 2? "button2 orange" : 
            "button2"} onClick={() => this.setButton(2)}  value="Contest" 
             ref="button1" type="button" />

         </div>
         );
       }
    }

export default Head;


 类似资料:
  • 问题内容: 单击按钮后,我将尝试呈现一个段落。 这是我的代码。 在这里,我试图在单击按钮时呈现“你好朋友”。但是没有用。 问题答案: 这不是正确的方法,因为它是一个事件处理程序,它将不呈现元素,您需要的是“元素的条件呈现”。 有关详细信息,请参阅“文档”。 条件渲染 。 脚步: 1-使用具有初始值的状态变量。 2-点击按钮将值更新为。 3-使用该状态值进行条件渲染。 工作代码:

  • 我是个新手。如何只在React中单击按钮后才呈现组件? 我还想知道如何在点击按钮时刷新组件而不刷新整个页面。

  • 问题内容: 单击按钮如何只打印一个组件。 我知道这个解决方案: 但是React不想使用框架。 有什么办法吗?谢谢。 问题答案: 客户端上有两种解决方案。一种是像您张贴的框架。不过,您可以使用iframe: 这期望这个html存在 另一种解决方案是使用媒体选择器,并在样式上隐藏所有您不想打印的内容。 最后一种方法需要在服务器上进行一些工作。您可以将所有HTML + CSS发送到服务器,并使用许多组件

  • 应用: 带有两个文本输入字段(input1、input2)的搜索栏 三个按钮:SearchX、SearchY、Clear Results 两个搜索都可以将input1和input2作为参数,以得到两个不同的结果。 有一个结果组件,它接受输入、操作,并根据操作呈现搜索组件。 问题: 我们希望只有在单击按钮时才启动搜索。使用下面的代码,在第一个搜索结果之后,只要您更改输入,结果组件就会预期地重新呈现,

  • 在我点击提交按钮后,我如何使页面刷新或更新页面中的内容?我尝试将(我知道不是React方式,具有相同的结果)放入提交函数(、)中,但POST请求没有得到响应 OpenTickets.js CardConversation.jsx

  • 我正在我的演示应用程序中使用这个datepicker https://www.npmjs.com/package/react-datepicker但是我的datepicker是在我点击输入字段时打开的。当用户点击右侧的按钮和图标而不是点击输入时,我们可以打开日期选择器吗?