javascript - 使用 React.js 的随机数

标签 javascript reactjs ecmascript-6

我写了这段代码,但是当我运行它时,我只得到一个空白页面。怎么了? 看来我已经接近答案了。我已经尝试了所有方法,但仍然无法正常工作。

class Button extends React.Component {

  constructor(props) {
   super(props);
   this.state = {
   random: 0
    }
   }


   render() {
   var min = 1;
   var max = 100;
   var rand =  min + (Math.random() * (max-min));
   handleClick() {
    this.setState ({this.state.random + this.rand})
   }
    return (
      <div>
       <button value="Click me!" onClick={this.handleClick.bind(this)></button>
       </div>
      );

 React.render(<Button />, document.querySelector('#container'));

  }
} 

JSFIDLLE:https://jsfiddle.net/1cban4oy/12/

最佳答案

从渲染函数中移除所有逻辑并将其添加到点击处理程序方法中。此外,onClick 末尾缺少大括号。最后,您没有在 setState() 方法中指明要更新的状态属性。

这基本上似乎可以满足您的要求: https://codesandbox.io/s/98n9EkEOJ

这是以防万一的代码:

import React from 'react';
import { render } from 'react-dom';

class Button extends React.Component {

  constructor(props) {
    super(props);
    this.handleClick = this.handleClick.bind(this);
    this.state = { random: 0 };
  }

  handleClick() {
    const min = 1;
    const max = 100;
    const rand = min + Math.random() * (max - min);
    this.setState({ random: this.state.random + rand });
  }

  render() {
    return (
      <div>
        <button onClick={this.handleClick.bind(this)}>Click</button>
        <div>The number is: {this.state.random}</div>
      </div>
    );
  }
}

render(<Button />, document.getElementById('container'));

关于javascript - 使用 React.js 的随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45175836/

相关文章:

javascript - Fetch() 的响应未定义

javascript - Es6 React 组件引用

javascript - 从文本区域获取输入

javascript - 多个表单的多个 onsubmit 处理程序

javascript - 从嵌套 Json 访问数据

javascript - 我们可以模拟打印模式(媒体查询打印)进行单元测试吗?

javascript - 在ES中创建Date对象

javascript - 我可以使用 Node 运行用 ES6 编写的 Gulp 任务吗?

javascript - 在网站上显示即将发生的 Facebook 事件,适用于一个页面,不适用于另一个页面

javascript - 使用 javascript 或 jquery 将事件添加到 li 内的按钮