【发布时间】:2019-05-24 20:27:09
【问题描述】:
我是一个子组件和父组件,我试图将数据从子组件传递给父组件,但问题是在传递数据并为其设置状态之后,当我第一次使用 console.log 时,我在控制台中什么也得不到,但是然后在第二次单击提交按钮后,我得到了结果,或者说它落后了 1 步..
我是这样做的
父组件
import Todoinput from './components/todo-input';
class App extends React.Component{
constructor(props){
super(props);
this.state={
item:''
}
}
onsearch=(term)=>{
console.log(term)
this.setState({item:term})
console.log(this.state.item)
}
render(){
return (
<div className="app">
<div className="todoinput">
<Todoinput onafter={this.onsearch}/>
</div>
</div>
)
}
}
export default App;
所以在 onsearch 函数中提交表单后,我第一次尝试控制台日志(this.state.item)我得到空结果,但是当我第一次控制台日志(术语)时在相同的函数中我得到结果
输出:
子组件
class Todoinput extends React.Component{
constructor(props){
super(props);
this.state={
term:''
}
}
onformsubmit=(e)=>{
e.preventDefault()
this.props.onafter(this.state.term)
}
onchange=(e)=>{
this.setState({term:e.target.value})
}
render(){
return (
<div className="card p-4">
<form onSubmit={this.onformsubmit}>
<div className="form-group">
<input type="text" onChange={this.onchange}
className="form-control" placeholder="Add a Todo Item"/>
</div>
<button type="submit" className="btn btn-block btn-
primary">Submit</button>
</form>
</div>
)
}
}
export default Todoinput;
【问题讨论】:
标签: reactjs