Ich versuche React zu lernen und stecken geblieben versuchen, eine Eingabe in einer Zahl zu nehmen, dann übergeben Sie diese Zahl, wenn die Schaltfläche Senden getroffen wird. Das meiste funktioniert (unten), aber wenn ich submit drücke, wird meine Nummer in eine Zeichenkette umgewandelt und ich weiß nicht was. Jede Hilfe oder Anleitung hier helfen würde, dankeReact - Eingabewert, um eine Nummer zu generieren, die nicht funktioniert
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;
so würde das gehen in etwa so, nicht wahr? 'handleClick() { this.setNumStars (parseInt (this.state.numStars, 10)) }' – sthig
das sollte funktionieren, ja – Nhor
es ist sehr nahe zu arbeiten. Ich gebe die Nummer ein und drücke submit, nichts passiert, bis ich eine andere Nummer (in den Textbereich) eingebe und dann die vorherige Nummer auffüllt. Also, wenn ich 100 eingeben und submit, nichts drücken. Aber wenn ich 20 eintippe, dann bevölkert 100. (und so weiter) – sthig