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

单击按钮时如何渲染元素:ReactJS

姚嘉容
2023-03-14
问题内容

单击按钮后,我将尝试呈现一个段落。

这是我的代码。

import React, { Component } from 'react';

class App extends Component {
  constructor() {
    super();
    this.createText = this.createText.bind(this);
  }


  createText() {
    return(
      <p>hello friend</p>
    )
  }


  render() {
    return (
      <div className="App">
        <button onClick={this.createText}>Click</button>
      </div>
    );
  }
}

export default App;

在这里,我试图在单击按钮时呈现“你好朋友”。但是没有用。


问题答案:

这不是正确的方法,因为它createText是一个事件处理程序,它将不呈现元素,您需要的是“元素的条件呈现”。

有关详细信息,请参阅“文档”。 条件渲染

脚步:

1-使用具有初始值的状态变量false

2-点击按钮将值更新为true

3-使用该状态值进行条件渲染。

工作代码:

class App extends React.Component {

  constructor() {

    super();

    this.state = {

      isShow: false

    }

    this.createText = this.createText.bind(this);

  }





  createText() {

    this.setState({ isShow: true })

  }





  render() {

    return (

      <div className="App">

        <button onClick={this.createText}>Click</button>

        {this.state.isShow && <p>Hello World!!!</p>}

      </div>

    );

  }

}



ReactDOM.render(<App />, document.getElementById('app'))


<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>



<div id='app' />


 类似资料:
  • 问题内容: 我想在按钮单击时使用条件渲染组件,我编写了以下代码,但不起作用,当我单击漫画时,应加载漫画组件,而当我单击竞赛按钮时,应加载竞赛组件,有人可以帮忙吗下面是代码和CSS文件 问题答案: 您不退还组件,请尝试以下操作:

  • 我写了一些代码来呈现ReactJS中的重复元素,但我讨厌它有多丑。 有没有更好的方法来实现这一点? (我想在模板代码或类似的方法中嵌入循环。)

  • 主要内容:实例,实例,实例,实例元素是构成 React 应用的最小单位,它用于描述屏幕上输出的内容。 与浏览器的 DOM 元素不同,React 当中的元素事实上是普通的对象,React DOM 可以确保 浏览器 DOM 的数据内容与 React 元素保持一致。 将元素渲染到 DOM 中 首先我们在一个 HTML 页面中添加一个 id="example" 的 <div>: 在此 div 中的所有内容都将由 React DOM 来管

  • 编辑:底部的解决方案 这是一个跳棋游戏。单击一个按钮后,它等待单击第二个按钮与之交换。然而,有时你可能不想移动那个按钮,但一旦你点击了它,就没有回头路了,因为我无法禁用它。 在这里的其他帖子中,我看到人们使用 这只是使它在第一次单击后不可见。 这什么都干不了。 这也没什么用。编辑:所有这些方法都用true和false进行了尝试。 私有无效交换(){ 但你也需要 这样它就重新启用了它,或者其他什么,

  • 问题内容: 我已经写了一些代码来渲染ReactJS中的重复元素,但是我讨厌它是如此丑陋。 有没有更好的方法来实现这一目标? (我想在模板代码或类似方法中嵌入循环。) 问题答案: 您可以将表达式放在大括号内。请注意,在已编译的JavaScript中,为什么在JSX语法中永远不可能发生循环;JSX相当于函数调用和加糖的函数参数。仅允许使用表达式。 (此外:请记住将属性添加到在循环内渲染的组件。) JS