reactjs - 在 React 中如何正确地将输入值从子级传递给父级
问题描述
我在 [sandbox][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;
非常感谢任何帮助!
解决方案
您的代码中有很多错误。你应该正确阅读反应文档
首先,您错误地设置了您的状态-
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;
现在来到您最初的问题,要将输入的值传递给孩子,您需要将其作为道具传递并在孩子中用作道具 -
<Form onSubmit={this.handleSubmit} inputValue={this.state.value} />
在您的子组件中,将该值作为this.props.value
.
推荐阅读
- kubernetes - Rook ceph 未部署
- batch-file - 如何在批处理文件中替换等号?
- python - 调用另一个函数时调用函数
- python - 使用带有元组插入的 SQL LIKE 运算符
- javascript - react-abc:iOS 设备上的 MIDI 播放有几个问题(缺少音符、速度不一致、不需要的延音)
- delphi - Convert TFont.Pitch into an Integer value?
- javascript - 如何使用链接源在python中执行javascript
- splunk - Splunk:来自多个事件的统计数据并期望一个组合输出
- python - 在每个单元格中绘制/绘制具有自定义颜色的棋盘
- go - os.Open 无法识别文件名变量,但“硬编码”文件名可以