reactjs - 无法读取 this.state 未定义的属性“状态”
问题描述
我是新来的反应,我想知道为什么我一直得到这个无法读取“未定义”错误的属性值。当我对 this.state.username 和 this.state.todoList 进行控制台登录时,我可以看到状态正在更新,但只有在我单击提交按钮后才会出现错误。
有什么建议么?谢谢!
import React, { Component } from "react";
import axios from "axios";
export default class TestNote extends Component {
constructor(props) {
super(props);
this.onChangeUsername = this.onChangeUsername.bind(this);
this.onChangeTodoList = this.onChangeTodoList.bind(this);
this.state = {
username: "",
todoList: "",
};
}
onChangeUsername(e) {
this.setState({
username: e.target.value,
});
console.log(this.state.username);
}
onChangeTodoList(e) {
this.setState({
todoList: e.target.value,
});
}
onSubmit(e) {
e.preventDefault();
const todoList = {
username: this.state.username,
todoList: this.state.todoList,
};
console.log(todoList);
axios
.post("http://localhost:5000/list/add", todoList)
.then((res) => console.log(res.data));
}
render() {
return (
<div className="container">
<form>
<label>Username: </label>
<input
type="text"
required
value={this.state.username}
onChange={this.onChangeUsername}
/>
<label>TodoList: </label>
<input
type="text"
value={this.state.todoList}
onChange={this.onChangeTodoList}
/>
<input type="submit" value="Add This List" onClick={this.onSubmit} />
</form>
</div>
);
}
}
解决方案
你onSubmit
正在失去这个背景。您应该尝试其中一种方法,但我建议您使用箭头函数。
- 你
.bind(this)
应该onSubmit
...
<input type="submit" value="Add This List" onClick={this.onSubmit.bind(this)} />
...
- 定义
onSubmit
为箭头函数
...
onSubmit = (e) => {
e.preventDefault();
const todoList = {
username: this.state.username,
todoList: this.state.todoList,
};
}
...
推荐阅读
- java - 找不到符号:变量 raw,位置:R 类
- python - 我在使用 pop 的范围内,但仍然出现超出范围的错误
- angular - 向父组件发送数据表单
- java - 部署成功后的404
- botframework - 微软示例 52 -
- reactjs - 如何在firebase实时数据库和身份验证上生成相同的用户ID
- quarkus - Quarkus、Apache 目录 api、google libphonenumber 库不适用于本机
- sql - Oracle 中的转置功能
- php - Wordpress 类别页面在 URL 中显示类别和子类别
- netbeans - NetBeans Junit5 测试输出忽略 DisplayName 嵌套格式