2017-06-02 3 views
1

私はReactを学びたいと思っています。入力を数字で入力しようとしていて、ボタンの送信がヒットしたときにその数字を渡してしまいました。この作品のほとんど(以下)は、私が提出したときに私の数字は文字列に変換され、私は何を知らないのですか?ここではすべてのヘルプやガイダンスは役立つだろう、あなたに反応しない数字を生成するための入力値

import React from 'react'; 
import Stars from './star' 

class StarMaker extends React.Component { 
    constructor(props) { 
    super(props); 
    this.state = { 
     numStars: 200, 
    } 
    } 
    setNumStars(num) { 
    console.log(typeof num); 
    const numPulses = [...Array(num).keys()]; 
    console.log(numPulses); 
    this.pulses = numPulses.map(i => this.generatePulse(i)); 
    } 

    handleClick() { 
    this.setNumStars(this.state.numStars) 
    } 

    handleChange(e) { 
    console.log(e); 
    this.setState({ 
     numStars: Number(e.target.value) 
    }) 
    } 

    getRandomNumber(min, max) { 
    return Math.floor(Math.random() * (max - min + 1)) + min; 
    } 

    generatePulse(i) { 
    const props = { 
     key: i, 
     top: this.getRandomNumber(-385, 556), 
     left: this.getRandomNumber(1, 2430), 
     scale: `scale(${this.getRandomNumber(1, 2)})`, 

    } 
    return (<Stars {...props} />) 
    } 
    componentWillMount() { 
    const numPulses = [...Array(this.state.numStars).keys()]; 
    this.pulses = numPulses.map(i => this.generatePulse(i)); 
    } 
    render() { 
    console.log('render'); 
    return (
     <div> 
     {this.pulses} 
     <input value={this.state.numStars} onChange={this.handleChange.bind(this)} type="number"></input> 
     <button onClick={this.handleClick.bind(this)}>Submit</button> 
     </div> 
    ); 
    } 
} 

export default StarMaker; 

答えて

1

に感謝HTMLでinput値は、常に関係なく、指定しただろう何typestringできなくなります。

parseInt(this.state.numStars, 10); 
+0

はそうそれは右、そうのようで行くだろう:あなたの代わりにstringnumberデータ型を使用する必要がある時はいつでも、あなたは基本的に文字列から数値を解析することによって、明示的にキャストする必要があり、と言いましたか? 'handleClick(){ this.setNumStars(parseInt(this.state.numStars、10)) }' – sthig

+0

は動作するはずです。はい – Nhor

+0

これは動作に非常に近いです。私は数字を入力して提出する、私は別の番号(テキスト領域に)入力し、前の数値が入力されるまで何も起こりません。 したがって、100と入力した場合は何も入力しません。しかし、20を入力すると、100が入力されます。 (など) – sthig

関連する問題