在 React 中如何正确地将输入值从子级传递给父级
In React how to PROPERLY pass input value from child to parent
我在[沙盒][1]及以下
中有一个简单的代码
[1]: https://stackblitz.com/edit/react-72dprn 将输入表单值传递给子项到父项,但出了点问题,值没有传递。
这是app.js
import React, { Component } from 'react';
import { render } from 'react-dom';
import Hello from './Hello';
import './style.css';
import Form from './form'
class App extends Component {
constructor() {
super();
this.state = {
value: ""
};
}
handleSubmit = e=>{
this.setState({
value=e.target.value
})
}
render() {
return (
<div>
<Form onSubmit={this.handleSubmit}/>
</div>
);
}
}
render(<App />, document.getElementById('root'));
还有 Form.js
import React, { Component } from 'react';
class form extends Component {
render() {
return (
<form className="replyForm" onSubmit={this.props.onSubmit}>
<input />
<button type="submit" className='btn btn-success'>Submit</button>
</form>); } }
export default form;
非常感谢任何帮助!
你的代码错误太多了。您应该正确阅读react docs
首先你的状态设置不正确-
handleSubmit = e=>{
this.setState({
value: e.target.value //this is an object don't assign a value//
})
}
其次 - 在您的 form.js 中,您的组件以小写字母开头。 React 组件以大写开头 -
class Form extends Component {
render() {
return (
<form className="replyForm" onSubmit={this.props.onSubmit}>
<input />
<button type="submit" className='btn btn-success'>Submit</button>
</form>); } }
export default Form;
现在回到你原来的问题,要将输入的值传递给 child 你需要将它作为 props 传递并在 child 中作为 props -
<Form onSubmit={this.handleSubmit} inputValue={this.state.value} />
在您的 child 组件中访问该值作为 this.props.value
。
我在[沙盒][1]及以下
中有一个简单的代码[1]: https://stackblitz.com/edit/react-72dprn 将输入表单值传递给子项到父项,但出了点问题,值没有传递。
这是app.js
import React, { Component } from 'react';
import { render } from 'react-dom';
import Hello from './Hello';
import './style.css';
import Form from './form'
class App extends Component {
constructor() {
super();
this.state = {
value: ""
};
}
handleSubmit = e=>{
this.setState({
value=e.target.value
})
}
render() {
return (
<div>
<Form onSubmit={this.handleSubmit}/>
</div>
);
}
}
render(<App />, document.getElementById('root'));
还有 Form.js
import React, { Component } from 'react';
class form extends Component {
render() {
return (
<form className="replyForm" onSubmit={this.props.onSubmit}>
<input />
<button type="submit" className='btn btn-success'>Submit</button>
</form>); } }
export default form;
非常感谢任何帮助!
你的代码错误太多了。您应该正确阅读react docs
首先你的状态设置不正确-
handleSubmit = e=>{
this.setState({
value: e.target.value //this is an object don't assign a value//
})
}
其次 - 在您的 form.js 中,您的组件以小写字母开头。 React 组件以大写开头 -
class Form extends Component {
render() {
return (
<form className="replyForm" onSubmit={this.props.onSubmit}>
<input />
<button type="submit" className='btn btn-success'>Submit</button>
</form>); } }
export default Form;
现在回到你原来的问题,要将输入的值传递给 child 你需要将它作为 props 传递并在 child 中作为 props -
<Form onSubmit={this.handleSubmit} inputValue={this.state.value} />
在您的 child 组件中访问该值作为 this.props.value
。