Javascript TypeError:null不是对象(计算';arr.push';)
之前有人问过几乎类似的问题,但在我的案例中我无法理解,所以这里是(我使用react native和expo): 我当时正在使用chrome查看我的待办应用程序代码的结果,它工作得很好,直到我想在我的手机上试用它,我在调用“addTodo”功能时遇到了这个问题: TypeError:null不是对象(正在计算“arr.push”) 代码如下:Javascript TypeError:null不是对象(计算';arr.push';),javascript,reactjs,react-native,Javascript,Reactjs,React Native,之前有人问过几乎类似的问题,但在我的案例中我无法理解,所以这里是(我使用react native和expo): 我当时正在使用chrome查看我的待办应用程序代码的结果,它工作得很好,直到我想在我的手机上试用它,我在调用“addTodo”功能时遇到了这个问题: TypeError:null不是对象(正在计算“arr.push”) 代码如下: addTodo = () => { var newTodo = this.state.text; var arr = this.state.todo;
addTodo = () => {
var newTodo = this.state.text;
var arr = this.state.todo;
if (!newTodo) {
alert("Empty!");
} else {
arr.push(newTodo);
this.setState({ todo: arr, text: "" });
this.setDataLocally();
}
“text”包含来自输入的字符串,将添加到“todo”数组中
如您所见,“arr.push”只应在“newTodo”不为null或空时调用
我只在想使用异步存储时才会收到错误。这是在上述代码末尾应调用的内容:
setDataLocally = () => {
var jsonData = JSON.stringify(this.state.todo);
AsyncStorage.setItem("list", jsonData);
我该怎么办?提前谢谢 问题是您的变量为空。。但它需要一份清单 试试这个:
addTodo = () => {
var newTodo = this.state.text;
var arr = this.state.todo !== null ? this.state.todo : [];
if (!newTodo) {
alert("Empty!");
} else {
arr.push(newTodo);
this.setState({ todo: arr, text: "" });
this.setDataLocally();
}