欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

什么& # 39;這里是未定義的事件對象還是輸入?

錢浩然1年前8瀏覽0評論

我為Reactjs中的OTP驗證編寫了這個示例代碼,當(dāng)我運行這個代碼時,輸出顯示一個錯誤:

無法讀取未定義的屬性(讀取“值”)

import { useState, useEffect, useRef } from 'react'

import '../src/component.css'

export default function Component(){

  

  const[count,setCount] = useState(0);

  const inpRef = useRef([]);

  useEffect(()=>{

    

    setTimeout(()=>{

      setCount(count+1)

    },1000);

  

    const handleInput =(e,index)=>{

      const current = inpRef.current[index];

      let next = inpRef.current[index+1];

      let prev = inpRef.current[index-1];

      

     const expression = /^\d+$/

     const isValid = expression.test(e.target.value);

     

     if(!isValid){

       e.target.value = "";

       return;

     }

      if (e.target.value.length >1){

        e.target.value ="";

      }

     

    }

    

    inpRef.current.forEach((input,index)=>{

      input.addEventListener('input',handleInput.bind(null,index))

    })

   return ()=>{

     inpRef.current.forEach((input,index)=>{

      input.removeEventListener('input',handleInput.bind(null,index))

    })

   }

  },[])

  

  return(

    <>

    <p> Counter : {count}</p>

    <h4>Now enter the OTP</h4>

   

    <div className="whole">

    <h5>Send the OTP to your phone Number</h5>

     <div className="container">

    {[...Array(6)].map((_,index)=>{

      return <input className="text-field" type ="number"

      ref = {(ref) =>{

        inpRef.current[index] = ref;

      }} 

      key ={index}

      />

    })}

    </div>

    <button className ="btn">SUBMIT</button>

    </div>

    

    </>

    )


}

我到底做錯了什么?我想要一個有6個輸入框的OTP驗證頁面,以便每當(dāng)我把一個值或添加到一個輸入字段時,焦點保持轉(zhuǎn)移到下一個輸入元素,當(dāng)我按backspace時,焦點應(yīng)該轉(zhuǎn)移回前一個元素

您的handleInput參數(shù)順序錯誤,此處index是event,e是index。因此e.target.value未定義。

變化

const handleInput = (e, index) => { ... }

const handleInput = (index, e) => { ... }

請參見codesanbox示例。