javascript - React on Rails:无法在我的表单输入框中输入文本
问题描述
当我尝试在网页上的框中输入内容时,它不会记录我正在输入任何内容。我猜它与 handleChange 或 onChange 有关,但我可以在这里使用一些帮助。我对 React 还是很陌生,并试图弄清楚。我在这里想念什么?
import React, {Component} from 'react';
import { Form } from 'semantic-ui-react';
class Assessments extends Component {
state = {assessment_name: '', assessment_type: ''}
componentDidMount() {
if (this.props.id) {
const { assessment_name, assessment_type } = this.props
this.setState({ assessment_name, assessment_type })
}
}
handleChange = (a) => {
const { name, value } = a.target
this.setState({ [name]: value })
}
handleSubmit = (a) => {
a.preventDefault()
if (this.props.id) {
const { id, history } = this.props
this.props.updateName(id, this.state, history)
this.props.toggleUpdate()
}
this.props.close()
this.setState({ assessment_name: '', assessment_type: ''})
}
close = () => this.setState({ open: false })
render() {
const { assessment_name, assessment_type } = this.state
return(
<Form onSubmit={this.handleSubmit}>
<Form.Input
name=''
value={assessment_name}
onChange={this.handleChange}
label='Assessment Name'
required
/>
<Form.Input
name='AssessmentType'
value={assessment_type}
onChange={this.handleChange}
label='Assessment Type'
required
/>
<Form.Button>Submit</Form.Button>
</Form>
)
}
}
export default Assessments;
解决方案
您没有将name
s 传递给函数用于更新状态的Form.Input
组件。handleChange
它们必须'assessment_name'
分别'assessment_type'
确保状态在输入更改事件上得到更新,并且新值反映在字段上。
<>
<Form.Input
name="assessment_name"
value={assessment_name}
onChange={this.handleChange}
label="Assessment Name"
required
/>
<Form.Input
name="assessment_type"
value={assessment_type}
onChange={this.handleChange}
label="Assessment Type"
required
/>
</>
推荐阅读
- python - 合并两列上的两个数据框
- python - 索引列的标题不保留 - Python Pandas DataFrame
- html - Rails & FontAwesome - 跨度内的链接不起作用
- python - keras 神经网络中的多种输入类型
- sql - 查询返回我为它定义的更多结果
- c# - 如何将用户控件对象传递给另一个用户控件的内容?
- amazon-cloudformation - 设置 IAM 角色描述
- javascript - 动态创建的表中的粗体文本 - javascript
- null - Null Channel 最大尺寸 - Spring 集成流程
- java - 如何将 ID 属性添加到蜡染中的 g 元素?