未配置promptBeforeIdle却报错?react-idle-timer问题求助
解决react-idle-timer提示promptBeforeIdle必须小于timeout的问题
这个报错是因为新版本的react-idle-timer新增了默认的promptBeforeIdle值,即便你没显式设置,库也会用默认值做校验,如果你的timeout小于这个默认值,就会触发错误。
解决方法如下:
- 显式设置promptBeforeIdle属性:在你的
activityTimer配置里添加promptBeforeIdle: 0(或者null),覆盖默认值,这样就不会触发校验逻辑。修改后的代码:
// USER ACTIVITY TIMER const activityTimer = useIdleTimer({ crossTab: true, syncTimers: 200, startOnMount: false, startManually: true, name: "activity-timer", timeout: expireTestTime * 60 * 1000, // in miliseconds promptBeforeIdle: 0, // 显式设置为0,避免默认值导致校验失败 onIdle: () => sendMsgToBackground({ action: ACTION.USER_ACTIVITY_IDLE }), });
锁定react-idle-timer版本:如果你不想适配新版本,可以在
package.json里把react-idle-timer的版本锁定到之前能正常运行的版本,比如之前用的是^5.7.2,就改成具体版本号5.7.2,然后重新执行npm install。检查timeout值的有效性:确认
expireTestTime的值是正数,确保计算出来的timeout大于0,避免因为timeout过小导致和默认的promptBeforeIdle冲突。
内容的提问来源于stack exchange,提问作者Tikam Chand
相关产品推荐
相关产品推荐

