Reactjs 无法使用react-typed.js回调声明

Reactjs 无法使用react-typed.js回调声明,reactjs,typed.js,Reactjs,Typed.js,每次类型字符串随此节点模块更改时,我都尝试更新位于状态中的计数器。当我将preStringTyped函数附加到组件时,该函数(位于preStringTyped中的警报仅触发一次 以下是模块: 这是我的代码-您可以忽略randomlyselements和displayteets函数,这里重要的是preStringTyped和return()中的内容 preStringTyped=()=>{ 警报(“键入”) } randomlySelectElements=(数字,数组)=>{ 让shuffedA

每次类型字符串随此节点模块更改时,我都尝试更新位于状态中的计数器。当我将
preStringTyped
函数附加到组件时,该函数(位于
preStringTyped
中的
警报
仅触发一次

以下是模块:

这是我的代码-您可以忽略
randomlyselements
displayteets
函数,这里重要的是
preStringTyped
return()中的内容

preStringTyped=()=>{
警报(“键入”)
}
randomlySelectElements=(数字,数组)=>{
让shuffedArray=\洗牌(数组);
设selectedEle=shuffedArray.slice(0,数字);
返回selectedEle;
}
显示tweets=()=>{
如果(!this.state.rawData){
返回空
}否则{
让GetRandomTweetsString=()=>{
返回this.randomlySelectElements(10,this.state.rawData)
.map((元素,索引)=>{
返回ele.masterData.randomString
})
}
返回(
)
}
}

首先,您需要使用
preStringTyped
回调(而不是
onBegin
),该回调将在键入每个字符串之前触发。同样,在代码中,您可以立即执行函数
this.preStringTyped()
,但应该将其作为回调属性的引用传递(
preStringTyped={this.preStringTyped}
)。您的代码应该是这样的


  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()}
        />
      )
    }
  }