【发布时间】:2018-07-30 21:04:41
【问题描述】:
我知道这里有问题,但我看不到。在下面的代码中,输入框的事件处理程序工作正常,但保存的代码有问题。当我单击按钮时,我可以看到事件处理程序触发,然后整个应用程序重置。有什么想法吗?
import React, { Component } from 'react';
import InputForm from './InputForm';
class Parent extends Component {
constructor(props){
super(props);
this.state = {
value: ""
};
}
inputSavedHandler = (event) => {
console.log("input saved-------------------");
}
inputChangedHandler = (event) => {
this.setState({value: event.target.value});
}
render(){
return(
<div>
<InputForm
value={this.state.value}
changed={this.inputChangedHandler}
saved={this.inputSavedHandler}
/>
</div>
);
}
}
export default Parent;
import React, { Component } from 'react';
class InputForm extends Component {
render(){
return(
<div>
<form onSubmit={this.props.saved}>
<input type="text" className="input" value={this.props.value} onChange={this.props.changed} />
<input type="submit" value="Add" />
</form>
</div>
);
}
}
export default InputForm;
【问题讨论】:
-
这是
form的默认行为,在inputSavedHandler方法中使用event.preventDefault()。
标签: reactjs