javascript - 为什么这个反应 handleChange 不起作用?尝试处理 props 收到的更改
问题描述
我在反应中有一个输入字段,其值最初由组件接收的道具设置
<EditUserModal
show={this.state.showModal}
close={this.closeModal}
userId={this.state.rowId}
email={this.state.selectedMail}
/>
如您所见,它收到了价值电子邮件,并且在组件内部我可以看到价值正确变化
<div class="form-group emailgroup">
<label for="exampleFormControlInput1">Change Email Address</label>
<input
type="email"
class="form-control"
placeholder="name@example.com"
value={this.props.email}
onChange={this.handleChange}
/>
</div>
问题是,我添加了一个 handleChange 事件,以便能够修改该输入,但它没有修改电子邮件,我想这是因为我应该更改父组件中的道具,但我不明白该怎么做。目前我的 handleChange 函数看起来像这样。
handleChange = (evt) => {
this.setState({
email: evt.target.value
});
}
这是组件的初始状态
this.state = {
email : ""
};
显然,由于我没有调用状态,而是分配字段值的道具,所以它不会改变。但是我试过了......
this.state = {
email : props.email
};
它让我可以这样改变它,但问题是它最初不会在输入值中呈现任何内容。
解决方案
推荐阅读
- python - 在 Python 中无法检索指定时间范围的谷歌搜索结果,即上个月
- google-maps-api-3 - 如何找到与 API 密钥相关的 Google 结算帐户/项目?
- angular8 - 如何在angular8中嵌套数组的编辑页面中修补值?
- mule - 如何在 Anypoint studio 中导入 CSV 文件并将其转换为 JSON 格式?
- javascript - 在箭头函数(React)中使用时,Lodash 'get' 不起作用
- discord.js - Discord bot:使用拼写错误的命令时响应“未知命令”
- r - 在ggplot2中使用`facet_grid`时突出显示/在一些图周围画一个框
- javascript - Redux - 返回调用函数信息以更新道具/状态
- android - Google Fit API 是否仅适用于 gmail 帐户?
- r - 更改 R 中类型因子的变量的值