reactjs - 为什么:无法读取未定义的属性“电子邮件”?反应域
问题描述
我需要在另一个组件中使用我的状态,我用这样的道具发送它。
好的,这是我的 ./HandleForm 容器。
import React, { PureComponent } from "react";
import NotLoggedRegisterForm from "./NotLoggedRegisterForm";
export default class HandleForm extends PureComponent {
state = {
data: {
email: "",
password: "",
confirmPassword: ""
}
};
handleChange = e => {
this.setState({ ...this.state.data, [e.target.name]: e.target.value });
};
render() {
return (
<div>
<NotLoggedRegisterForm data={this.state.data} />
</div>
);
}
}
这是组件的一部分,而不是接收道具。
const { data } = props.data;
<Input
prefix={<Icon type="mail" style={{ color: "rgba(0,0,0,.25)" }} />}
type="email"
placeholder="Email"
name="email"
onChange={props.handleChange}
value={data.email}
/>
我收到该错误代码:
TypeError
Cannot read property 'email' of undefined
NotLoggedRegisterForm
/src/pages/logged/not/registerForm/NotLoggedRegisterForm.js:38:24
35 | placeholder="Email"
36 | name="email"
37 | onChange={props.handleChange}
> 38 | value={data.email}
| ^
39 | />
40 | )}
41 | </FormItem>
解决方案
改变
const { data } = props.data;
进入
const { data } = props;
推荐阅读
- flutter - Flutter:pageview.builder 跳转到目标页面位置
- java - 在java中一起使用子类和超类pojo的干净方式
- logback - 如何通过不同级别和附加程序将日志与某个类分开
- sql-server - Always On:同步辅助副本中的选择查询会影响主副本中的查询吗?
- go - 如何修剪 Go 模板中的空行?
- amazon-web-services - 基于 AWS API Gateway 路径的私有集成路由
- angularjs - Angular.js:孩子没有得到父母的变量
- php - 获取数组数据变量 - Laravel - PHP
- c# - 将标签绑定到选定的列表框值
- python - 熊猫:用组的模式填充na