Estoy tratando de aplicar una máscara para mi entrada, estoy usando useRef para obtener el valor actual, pero siempre regresa indefinido, me encuentro con un error, probé el mismo código en React cambiando solo la entrada a TextInput , y está funcionando. Aquí está mi código
const [card, setCard] = useState(); const inputCard = useRef(); const handleChange = () => { const cardValue = inputCard.current.value .replace(/\D/g, "") .match(/(\d{0,4})(\d{0,4})(\d{0,4})(\d{0,4})/); inputCard.current.value = !cardValue[2] ? cardValue[1] : `${cardValue[1]}-${cardValue[2]}${`${cardValue[3] ? `-${cardValue[3]}` : ""}`}${`${ cardValue[4] ? `-${cardValue[4]}` : "" }`}`; const numbers = inputCard.current.value.replace(/(\D)/g, ""); setCard(numbers); }; useEffect(() => { handleChange(); }, [card]);y finalmente esta es la entrada para React Native
<TextInput keyboardType='number-pad' ref={inputCard} onChangeText={handleChange} />y esta es la entrada para React
<input ref={inputCard} onChange={handleChange} />y este es el error que estoy recibiendo en React Native
TypeError: undefined is not an object (evaluating 'inputCard.current.value.replace')