开源改变世界

累计工作时间仅在关闭应用程序时保存到存储中 #386

推推 grbl 2年前 (2023-02-04) 235次浏览
关闭
cprezzi 打开了这个问题 2017 年 7 月 26 日 · 6条评论
关闭

累计工作时间仅在关闭应用程序时保存到存储中#386

cprezzi 打开了这个问题 2017 年 7 月 26 日 · 6条评论

评论

累计工作时间仅在关闭应用程序时保存到存储中 #386
成员

如果应用程序在每个作业后关闭,作业时间会正确添加到 settings.jogAccumulatedJobTime,但如果多次运行作业(或运行多个作业),它总是将作业持续时间添加到应用程序启动时的 accumulatedJobTime。

@jorgerobleshttps://github.com/LaserWeb/LaserWeb4/blob/dev-es6/src/components/com.js#L404中的 dispatch(setSettingsAttrs..) 调用一定有问题。settings.jogAccumulatedJobTime 的值在调度行之后不会更新。我是否必须在 dispatch(setSettingsAttrs()) 之后以某种方式刷新设置?

累计工作时间仅在关闭应用程序时保存到存储中 #386
成员

存储中的对象是只读的。https://github.com/LaserWeb/LaserWeb4/blob/dev-es6/src/components/com.js#L60捕获永远不会改变的设置对象。https://github.com/LaserWeb/LaserWeb4/blob/dev-es6/src/components/com.js#L404导致商店创建一个新的设置对象。不要捕获设置对象,而是始终引用 this.props.settings。

累计工作时间仅在关闭应用程序时保存到存储中 #386
成员

由于 function callbacks clobber this,您需要使用旧的selfhack 或切换到回调的箭头函数。

累计工作时间仅在关闭应用程序时保存到存储中 #386
成员作者

self hack (var that = this) 不起作用,将所有内容更改为箭头函数会带来太多工作,所以我在全局变量的帮助下解决了它;)