reactjs - REACTJS:值未定义
问题描述
我有三个状态,包括姓名、年龄和电子邮件,其值是手动指定的,以便在三个输入文本字段中显示值。
但是,我也想让输入文本字段中的所有三个值都可编辑。
我收到一个错误age is not defined
。我可以知道为什么吗?
这是用于运行以下代码的链接: https ://stackblitz.com/edit/react-zyeeed
import React, { Component } from 'react';
import { render } from 'react-dom';
class Info extends Component {
constructor(props) {
super(props);
state = {
name = "Jack Sparrow",
age = "52",
email = "jacksparrow52@gmail.com"
};
this.handleChange = this.handleChange.bind(this);
}
handleChange(e) {
let newState = {...this.state};
newState[e.target.name] = e.target.name
this.setState({
newState
})
}
render() {
return (
<div>
<input type="text" name="name" value={this.state.name} placeholder="Enter your name..." onChange={(e) => this.handleChange(e)} />
<br /> <br />
<input type="text" name="age" value={this.state.age} placeholder="Enter your age..." onChange={(e) => this.handleChange(e)} />
<br /> <br />
<input type="text" name="email" value={this.state.email} placeholder="Enter your email..." onChange={(e) => this.handleChange(e)} />
<h3>Output states:</h3>
<p id="name">Entered Name: {this.state.name}</p>
<p id="age">Entered Age: {this.state.age}</p>
<p id="age">Entered Email: {this.state.email}</p>
</div>
);
}
}
render(<Info />, document.getElementById('root'));
解决方案
缺少一些东西。
- 需要使用
this.state
- 更正状态属性的分配
- 更改
newState[e.target.name] = e.target.name
为newState[e.target.name] = e.target.value
- 更改
this.setState({ newState })
为this.setState(newState)
或this.setState({ ...newState })
我认为这涵盖了它。我做了一个工作示例。希望有帮助!
推荐阅读
- html - 桌面视图中的条件链接显示
- c++ - 赋值运算符更改分配对象的值
- c++ - 如何使 xpressive 引擎像常规文本搜索一样工作
- excel - 在 foreach 语句中创建检查点
- jquery - OWL carousel 在 iphone 和 ipad 的 iframe 中不起作用
- java - 如何使用java 8查找文本文件中的单词总数,元音总数,特殊字符总数
- neo4j - 理解模式和neo4j-embedded
- reactjs - 如何在本机反应中向插件添加功能
- python - 将列表转换为 Python 数据框
- xml - 解组包含混合内容的 XML 标记(例如 CDATA、其他标记)