我目前正在开发一个React应用程序,并试图检测达到某个输入值长度所需的时间。
它是一个受控输入,其值通过redux action和Reducer存储和设置。
我想在输入值为!==“”
时开始计数时间,在值.length
等于13时停止计数。
此外,在应用程序逻辑中,如果到达.length===13
所花费的时间类似于100ms
(+或-),则意味着应用程序用户使用了条形码扫描器,否则,他用键盘键入了条形码。
我尝试使用带有new Date()
的var来获取时间差异,但是render()
逻辑阻止了对经过时间计数的维护。。。
你知道我怎样才能达到我的目标吗?
我把组件代码留给你就在下面,提前谢谢你!
import React from "react";
import StoreInput from "../StoreInput/index";
import { connect } from "react-redux";
import "./index.scss";
import { setStoreInputFieldValue } from "../../actions/store.actions";
import { addArticleToStore } from "../../actions/articles.actions";
type ScanSetProps = {
// Redux State
storeInputFieldValue?: any;
// Redux Actions
setStoreInputFieldValue?: any;
addArticleToStore?: any;
};
class ScanSet extends React.Component<ScanSetProps> {
handleScanSet = (event) => {
const { setStoreInputFieldValue } = this.props;
setStoreInputFieldValue(event.target.value);
};
// Component render
render() {
const { storeInputFieldValue, addArticleToStore } = this.props;
return (
<div className="ScanSet">
<StoreInput
idStoreInput={"scanSetInput"}
typeStoreInput={"number"}
placeholderStoreInput={
"Scannez le code barre ou saisissez le code EAN"
}
storeInputFillMethod={this.handleScanSet}
/>
<button
id="scanSetButton"
className={
storeInputFieldValue.length === 13
? "enabledButton"
: "disabledButton"
}
onClick={() => addArticleToStore(storeInputFieldValue)}
>
Ajouter
</button>
</div>
);
}
}
const mapStateToProps = (state) => ({
storeInputFieldValue: state.store.storeInputFieldValue,
});
const mapDispatchToProps = (dispatch) => ({
setStoreInputFieldValue: (input_value) =>
dispatch(setStoreInputFieldValue(input_value)),
addArticleToStore: (article_ean) => dispatch(addArticleToStore(article_ean)),
});
export default connect(mapStateToProps, mapDispatchToProps)(ScanSet);
我建议使用state。
当输入!==''时,this.setstate((state)=>{。。。state,starttime:new Date()。gettime()})
当value.length===13时,this.setstate((state)=>{。。。state,endtime:new Date()。gettime()}
然后您可以有另一个部分来解释差异,(endtime-starttime)
因为您使用的是redux,如果您有一个片断说明了这一点。 您可以简单地分派这两个操作(setStartTime,setEndTime),并让reducer处理上面的逻辑。
问题内容: 我是Android编程的新手,所以请您为我的问题提供帮助。我正在尝试以秒/毫秒为单位测量MouseEvent.ACTION_DOWN和MouseEvent.ACTION_UP之间的时间。 我的问题实际上是因为seconds变量没有显示我想要的内容,我什至不知道它的测量结果是否正确,对于上面的示例,持续时间为16545(???!?!?) -3秒。我该怎么做才能在两个MotionEvent
问题内容: 是否有一个跟踪用户某些事件的表。 总是有一个动作,之后可能会有一个动作。 现在,我想查询这两个动作之间的时间差,以获取用户和之间的time_diff 。 现在,您可以假定没有多个条目(例如,至少一个,最大另一个)。 我想要这样的结果: 问题答案: 您可以使用以下查询: 该子句过滤掉仅包含一个动作的组,例如OP中的with记录。 演示在这里
问题内容: 抱歉,我的问题是否愚蠢,没关系。但是我只想知道在这两种情况下会发生什么。 两者都只给出相同的结果。但是我知道有一些原因。我不知道这一点。这两个条件有什么区别? 问题答案: 它们之间没有任何区别。许多程序员使用第二种方法只是为了确保他们没有得到。就这样。
下面是我的解决方案,但我不清楚“删除”的情况下代码应该是什么样子 删除字符的代码应该是什么样子的? 更新-添加了更多的示例 下面是Dmitry和Ingen答案的比较:https://dotnetfiddle.net/mjqdao
问题内容: 我正在写的游戏中有两个角色,玩家和敌人。定义如下: 然后用: 我可以使用键盘来移动player(),但是在尝试检测两者之间的碰撞时我很茫然。很多人说过要使用Rectangles,但是作为一个初学者,我看不到如何将其链接到现有代码中。谁能为我提供一些建议? 问题答案: 我认为您的问题是您没有为球员和敌人使用好的OO设计。创建两个类: 您的播放器应具有X,Y,Width和Height变量。
问题内容: 我想知道判断Shape对象是否与另一个形状相交的最佳方法。目前,我在游戏中已对碰撞检测进行了分类,只要它涉及与矩形相交的Shape,反之亦然。我遇到的问题是Shape类中的intersects()方法只能将Rectangle或Point作为参数,而不能将另一个Shape用作参数。有没有一种有效的方法来测试两个Shape对象是否以任何方式重叠?我尝试的一种方法是使用for循环生成一个点区
我想在对象使条件,例如,如果在响应我们有stateCode,选择属性stateCode,如果我们有stateName在响应选择stateName,它可能,你有解决方案吗? 这是对象的示例: 这是stateCode,我想包括在那里,并作出条件,如果作为回应,我验证我们有stateCode,选择州代码,如果我们有stateName,选择stateName,有人帮助吗? 此外,我还使用公共断言函数来验证
我正在开发一个spring api,在这个api中我使用postgres并保存一个timestamp类型的字段,字段名为。现在我想检查这个字段是否在两个不同的时间戳之间。 现在我正在使用这个: 是否可以在之间使用