首页 > 解决方案 > 在 React JS 中生成随机数

问题描述

所以,我试图在我的简单应用程序中生成一个随机数,但是这个错误来了,任何人都可以帮我解决这个问题。

./src/ComLifeCycle.js

语法错误:E:/REACT/props-states/src/ComLifeCycle.js: Unexpected token, expected, (31:37)

31 | this.setState(number: Math.random()); // 这行有问题。

import React, { Component } from 'react';
import logo from './logo.svg';
import './ComLifeCycle.css';

class ComLifeCycle extends Component {
  render() {
    return (
      <div className="App">
        <header className="App-header">
          <img src={logo} className="App-logo" alt="logo" />
          <h1 className="App-title">Welcome to React</h1>
        </header>
        <Body />
      </div>
    );
  }
}

class Body extends Component {
  constructor(props){
    super(props);

    this.state = {
      number: 0
    };
    this.generateRandomNumber = this.generateRandomNumber.bind(this);
  }

  generateRandomNumber = () => {
    console.log("clicked");
    this.setState(number: Math.random()); // **problem in this line**
  }

  render(){
    return(
      <div>
        <p className="App-intro">
          To get started, edit <code>src/App.js</code> and save to reload.
        </p>
        <button onClick={this.generateRandomNumber}>Random number</button>
        <Number myNumber={this.state.number}/>
      </div>
    );
  }
}

class Number extends Component {
  render(){
    return(
      <div>
        <br />
        <p>{this.props.myNumber}</p>
      </div>
    );
  }
}

export default ComLifeCycle;

标签: javascriptreactjs

解决方案


您的 for 语法setState正确,它需要更新的值是一个对象。简而言之,您缺少花括号number: Math.random()

this.setState({number: Math.random()});

推荐阅读