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;
はそうそれは右、そうのようで行くだろう:あなたの代わりに
string
のnumber
データ型を使用する必要がある時はいつでも、あなたは基本的に文字列から数値を解析することによって、明示的にキャストする必要があり、と言いましたか? 'handleClick(){ this.setNumStars(parseInt(this.state.numStars、10)) }' – sthigは動作するはずです。はい – Nhor
これは動作に非常に近いです。私は数字を入力して提出する、私は別の番号(テキスト領域に)入力し、前の数値が入力されるまで何も起こりません。 したがって、100と入力した場合は何も入力しません。しかし、20を入力すると、100が入力されます。 (など) – sthig