Minha função 'Atualiza' não funciona de jeito nenhum, qualquer coisa que digito no campo sempre fica com o valor 1, já revisei várias vezes e não vi nenhuma diferença, o que fiz de errado?
Segue meu código componentes/index.js
import React from "react";
import { TextInput } from "react-native";
export default function CampoInteiro({valor, acao}){
const atualiza = (novoValor, acaoRetorno) => {
const verificaInteiro = novoValor.match(/ˆ[0-9]*$/);
if (!verificaInteiro) return;
//if (isNaN(novoValor)) return;
const removeZeroEsquerda = novoValor.replace(/ˆ(0)(.+)/, '$2');
acaoRetorno(removeZeroEsquerda);
}
const numeroEmTexto = String(valor);
return <TextInput
keyboardType='number-pad'
selectTextOnFocus
onChangeText={(novoValor) => {atualiza(novoValor, acao)}}
value={numeroEmTexto}
/>
}
Segue meu código item/index.js
import React, { useState } from 'react';
import { Button, Text, TextInput, View } from 'react-native';
import estilos from './estilos';
import CampoInteiro from '../../../componentes';
export default function Item({nome, preco, descricao}){
const [quantidade, setQuantidade] = useState(1);
return <>
<View style={estilos.informacao}>
<Text style={estilos.nome}>{nome}</Text>
<Text style={estilos.descricao}>{descricao}</Text>
<Text style={estilos.preco}>{preco}</Text>
</View>
<View style={estilos.carrinho}>
<View>
<View style={estilos.valor}>
<Text style={estilos.descricao}>Quantidade:</Text>
<CampoInteiro valor={quantidade} acao={setQuantidade} />
</View>
<View style={estilos.valor}>
<Text style={estilos.descricao}>Preco:</Text>
<Text style={estilos.preco}>0</Text>
</View>
</View>
<Button title='Adicionar' />
</View>
<View style={estilos.divisor} />
</>
}