Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript TypeError:undefined不是对象(正在计算';details.date.getTime';)_Javascript_Reactjs_React Native_React Native Android - Fatal编程技术网

Javascript TypeError:undefined不是对象(正在计算';details.date.getTime';)

Javascript TypeError:undefined不是对象(正在计算';details.date.getTime';),javascript,reactjs,react-native,react-native-android,Javascript,Reactjs,React Native,React Native Android,Im使用能够显示通知,在我的例子中,Im使用带有datetimepicker的schedulednotifications。我以前在另一个项目中使用过它,它工作正常,没有错误,但是在这个项目中,我得到了TypeError:undefined不是一个对象(评估'details.date.getTime')。这个错误是在我设置时间等后按下确认键后出现的 notifSchedule = (todo, date) => { PushNotification.localNotificationSch

Im使用能够显示通知,在我的例子中,Im使用带有datetimepicker的schedulednotifications。我以前在另一个项目中使用过它,它工作正常,没有错误,但是在这个项目中,我得到了TypeError:undefined不是一个对象(评估'details.date.getTime')。这个错误是在我设置时间等后按下确认键后出现的

notifSchedule = (todo, date) => {
PushNotification.localNotificationSchedule({
  id: todo.id,
  message: todo.title,
  date,
  allowWhileIdle: true,
  priority: 'high',
});
};
这正是我在另一个项目中所做的,所以它应该会起作用。唯一不同的是,我现在正在使用类组件,而在另一个项目中,我只使用函数

当我使用date:newdate(date.now()+60*1000)时,//在60秒内,它甚至不会触发任何事件,也不会发生任何事情

编辑2: 完整错误消息

Possible Unhandled Promise Rejection (id: 3):
TypeError: undefined is not an object (evaluating 'details.date.getTime')
localNotificationSchedule@http://10.0.2.2:8081/index.bundle?platform=android&dev=true&minify=false:129002:38
notifSchedule
handleChange@http://10.0./index.bundle?platform=android&dev=true&minify=false:129538:16
resolve@http://10.81/index.bundle?platform=android&dev=true&minify=false:129662:19
tryCallOne@http://181/index.bundle?platform=android&dev=true&minify=false:27056:16
http://10.81/index.bundle?platform=android&dev=true&minify=false:27157:27
_callTimer@http://881/index.bundle?platform=android&dev=true&minify=false:30596:17
_callImmediatesPass@http://10.081/index.bundle?platform=android&dev=true&minify=false:30635:17
callImmediates@http://1081/index.bundle?platform=android&dev=true&minify=false:30852:33
__callImmediates@http://10.0.2.2:8081/index.bundle?platform=android&dev=true&minify=false:2736:35
http://10.0.2.2:8081/index.bundle?platform=android&dev=true&minify=false:2522:34
__guard@http://1801/index.bundle?platform=android&dev=true&minify=false:2719:15
flushedQueue@http://1081/index.bundle?platform=android&dev=true&minify=false:2521:21
flushedQueue@[native code]
invokeCallbackAndReturnFlushedQueue@[native code]

传入的
date
参数可能未定义。调试传递给
localNotificationSchedule
的内容,这可能是由于您在组件的生命周期中犯了一些错误造成的,因为您声明正在使用基于类的组件,因此我想补充一点,请确保您正确绑定了函数,否则它将无法工作。基于类的函数需要绑定函数,而函数本身需要绑定。有时,值似乎未定义,因为您没有正确地接近它们。
调试从中提取日期的详细信息,或者执行以下操作

console.log(details); //if undefined do some action to fill it

details && details.date.getTime; //for conditional rendering 

确保您的日期格式符合函数的要求,然后使用:
date:date

notifSchedule = (todo, date) => {
PushNotification.localNotificationSchedule({
  id: todo.id,
  message: todo.title,
  date: date,
  allowWhileIdle: true,
  priority: 'high',
});
};

我自己修复了它(todo,date),删除了todo,只让(date)工作,

“基于类的函数需要绑定函数,函数可以自己完成”这就是为什么它不起作用的原因,我没有任何约束,也没有任何与之相关的状态date@iLightFPS您必须提供额外的代码细节,以查明真正的问题。因为这里我们只需要查看您提供的函数。更新了代码,而my state={}只有todoId和newTodo initDebug用于提取日期的详细信息,或者像这样执行:“details&&details.date.getTime”再次更新了代码,并显示了完整的错误消息。我现在什么都不管用尝试了很多事情都没有成功没有日期是不被低估的。将鼠标悬停在其上时,会显示(参数)date:any。当检查另一个有功能组件的项目时,它说的是相同的,但它在该项目上工作。我想我可能是'date:new date(date.now()+60*1000),//在60秒内'这里,你能测试一下吗?