将状态设置为“输入名称”字段的值时遇到问题
Having trouble with setting state to value of "Enter name" field
我有一个简单的文本输入来输入你的名字。我想把它传递给另一个场景。不过,首先,我想将值保存到当前组件的状态中。当我打开调试器时,我每console.log(this.name)
都会得到undefined
。
这是我的代码:
constructor(props) {
super(props);
this.state = {
name: ''
};
}
<TextInput style={styles.inputName}
placeholder="Enter your name"
textAlign="center"
onChange={this.handleChange.bind(this)} />
handleChange(event) {
this.setState({
name: event.nativeEvent.text
});
console.log(this.name)
}
你知道为什么我总是被"未定义"作为名称的值吗?设置与正在键入的状态等效的状态的正确方法是什么?
仅在按下提交按钮后设置状态是否更好?如果是这样,如何做到这一点?
您正在尝试访问this.name
,这是在您的情况下检查组件对象上的(可能不存在的)name属性。你应该看看this.state.name
.但是,即使您确实尝试通过 this.state.name
注销事件处理程序中的更新状态,您仍然可能遇到问题。来自 React 文档:
setState() 不会立即改变 this.state,但会创建一个 挂起的状态转换。调用此状态后访问此状态 方法可能会返回现有值。
最后,我建议通过event.target.value
从事件中提取名称值,而不是通过 nativeEvent
属性。
相关文章:
- 密码字段的问题
- JSP 中的“日期”字段存在问题
- 当出现多个字段时,jquery时间条目问题
- 我在添加更多输入字段时遇到问题,文本字段中的值不会保留
- Rails的问题,haml + javascript在字段对象的模糊
- Magento自定义选项-清除输入字段问题
- 获取javascript计算字段时遇到问题
- Accounts.createUser问题.如何使电子邮件字段不唯一
- HTML:密码字段中的HTML5占位符属性问题 - 显示正常文本
- 尝试使用名称访问表中字段的日期选取器时出现问题
- jquery动态添加HTML字段遇到了神秘的问题
- 添加到前端问题中的购物车和产品选项字段 - Magento
- 将状态设置为“输入名称”字段的值时遇到问题
- 当我尝试计算密码字段时,下面的代码有什么问题
- 我有一个问题,使用 Javascript 或 Jquery 创建具有字符串计数的动态字段
- 更新现有数据时检索引导模式表单中的复选框字段的值时出现问题
- jQuery 选择错误:添加新的选择字段并对其进行组合时出现问题
- asp.net MVC 隐藏字段 ID 问题
- x -可编辑字段问题,单引号
- jquery如果选择器更改重置或清除文本输入字段问题