大佬教程收集整理的这篇文章主要介绍了React 状态正在更新,但作为组件的 npm 模块无法识别它,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用 React 制作一个 Electron 应用程序,我正在声明一个我喜欢的组件的状态。
const [onBreak,setonBreak] = useState(false);
我还有一个 useEffect 控制台记录状态以查看它何时更改以及是否更改
useEffect(() => {
console.log(onBreak);
},[onBreak]);
我正在使用一个名为 react-compound-timer 的 react npm 包来在我的应用程序上使用几个带有控件的计时器 还允许我做的是,及时设置检查点,让它使用回调函数做一些事情,就像这样
<Timer // studying or break timer
formatValue={(value) => `${value < 10 ? `0${value}` : value}`}
startImmediately={falsE}
timetoupdate={1000}
checkpoints={[
{
time: 1000 * 10,callBACk: () => {
if (!onBreak) {
const myNotification = new Notification('Time: 45:00 minutes',{
body:
'You can stop Now or push it to 60:00 minutes if you still have stuff to do.',sound: navi.play(),});
}
},},// conTinues with some boilerplate code which I don't think is relevant here.
此计时器的功能是作为某人学习或休息时间的计时器。我有一个按钮可以像这样改变这个
<button
onClick={async () => {
reset();
setonBreak(true);
}}
>Break</button>
此按钮位于 <Timer> </Timer
内。当我按下按钮时,它将状态更改为 true,状态也被控制台记录,计时器重置并再次开始计数,到目前为止一切都很好但是当它到达第一个检查点(1000 * 10 一) 10 秒后它再次通过 if(!onBreak)
并且这次不是忽略它,因为 onBreak 的状态是 true 它“决定”无论如何都要运行它。我已经控制台记录了 if()
内的状态,它说 onBreak 是假的!这显然不应该是这种情况......我想也许我应该将状态传递给 the 但老实说我不知道如何因为在那里运行的回调函数是
我试过这样的事情
<Timer // studying or break timer
formatValue={(value) => `${value < 10 ? `0${value}` : value}`}
startImmediately={falsE}
timetoupdate={1000}
isOnBreak={onBreak} //here
checkpoints={[
{
time: 1000 * 10,callBACk: ({ isOnBreak }) => { //and here
if (!isOnBreak) {
const myNotification = new Notification('Time: 45:00 minutes',
但是它只会使我的应用程序崩溃。 我非常感谢您的时间、精力和帮助来解决这个问题。
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
以上是大佬教程为你收集整理的React 状态正在更新,但作为组件的 npm 模块无法识别它全部内容,希望文章能够帮你解决React 状态正在更新,但作为组件的 npm 模块无法识别它所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。