Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

minha função 'Atualiza' não funciona

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} />
        
    </>
}
1 resposta
solução!

Descobri o problema, era o caractere ˆ , que deveria estar assim ^

Resolvido.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software