【发布时间】:2019-04-18 16:30:52
【问题描述】:
我将输入值捕获为状态,并在按钮提交时将结果添加到数组中。
我遇到的问题是每次我在输入字段中输入一个字符时,它都会在我点击提交按钮之前创建一个新数组。
以下是奇怪行为的截图。
这是我的代码:
import React, { Component } from "react";
import autoBind from "react-autobind";
let fixtures = [];
const submitFixture = (homeTeam, awayTeam) => {
fixtures.push({
homeTeam: homeTeam,
awayTeam: awayTeam
});
};
class CreateFixture extends Component {
constructor(props) {
super(props);
autoBind(this);
this.state = {
homeTeam: "",
awayTeam: ""
};
}
render() {
const { homeTeam, awayTeam } = this.state;
return (
<React.Fragment>
<p>Home Team</p>
<input
value={homeTeam}
onChange={e => {
this.setState({ homeTeam: e.target.value });
}}
/>
<p>Away Team</p>
<input
value={awayTeam}
onChange={e => {
this.setState({ awayTeam: e.target.value });
}}
/>
<button onClick={submitFixture(homeTeam, awayTeam)}>
Create fixture
</button>
{console.log(fixtures)}
</React.Fragment>
);
}
}
export default CreateFixture;
【问题讨论】:
标签: javascript reactjs forms