reactjs - 无法使用 react typed.js 回调说明
问题描述
每次类型字符串随此节点模块更改时,我都会尝试更新位于状态中的计数器。当我将preStringTyped
函数附加到组件时,函数(alert
位于 中preStringTyped
)仅触发一次。
这是模块:https ://github.com/ssbeefeater/react-typed
这是我的代码 - 你可以忽略randomlySelectElements
anddisplayTweets
函数,这里重要的preStringTyped
是return()
.
preStringTyped = () => {
alert("typed")
}
randomlySelectElements = (number, array) => {
let shuffedArray = _.shuffle(array);
let selectedEle = shuffedArray.slice(0, number);
return selectedEle;
}
displayTweets = () => {
if(!this.state.rawData){
return null
}else{
let getRandomTweetsStrings = () => {
return this.randomlySelectElements(10, this.state.rawData)
.map((ele, index) => {
return ele.masterData.randomString
})
}
return (
<ReactTyped
loop
typeSpeed={50}
backSpeed={20}
strings={
getRandomTweetsStrings()
}
smartBackspace
backDelay={1}
fadeOutDelay={100}
loopCount={0}
showCursor
cursorChar="|"
onBegin={this.preStringTyped()}
/>
)
}
}
解决方案
首先,您需要使用将在键入每个字符串之前触发的preStringTyped
回调(不是)。onBegin
同样在您的代码中,您将执行该函数this.preStringTyped()
,但您应该将其作为对回调属性 ( preStringTyped={this.preStringTyped}
) 的引用传递。你的代码应该是这样的
<ReactTyped
loop
typeSpeed={50}
backSpeed={20}
strings={
getRandomTweetsStrings()
}
smartBackspace
backDelay={1}
fadeOutDelay={100}
loopCount={0}
showCursor
cursorChar="|"
preStringTyped={this.preStringTyped} // <- not onBegin={this.preStringTyped()}
/>
推荐阅读
- java - 无法将 springboot REST api 部署到 Heroku
- neo4j - 在 Neo4J 中查找图中节点之间的长度(最远)
- arrays - 谷歌表格 IF 函数返回值
- c++ - 如何在 omnet++ 中将 simtime 转换为双值?
- java - Spring Boot Junit 使用构造函数注入测试注入 dao 接口
- javascript - Elasticsearch:跨多个索引返回唯一记录
- java - Java Regex 匹配 Pattern 或 Pattern 中的任何子字符串
- primefaces - 无法链接 org/primefaces/application/resource/DynamicResourcesPhaseListener:javax/faces/event/PhaseListener
- php - Laminas Framework 中的函数 setInputFilter() 是什么以及如何使用它?
- ios - 带有 ObservedObject 的视图,没有任何东西可以让我编辑它