#reactjs
#reactjs
Вопрос:
У меня следующая проблема, у меня есть функция, но через несколько секунд или минут она запускается сама по себе без нажатия. Если кто-то может помочь мне, что у меня не получается, когда я нажимаю, функция работает нормально, но через несколько секунд или минут она выполняется сама, спасибо, я оставляю код
import React, { useContext, Fragment, useState,useEffect} from 'react';
import clienteAxios from '../../config/axios';
import { withRouter } from 'react-router-dom';
import { CRMContext } from '../../context/CRMContext';
const ListadoPedidos =(props) => {
const [ auth, setAuth ] = useContext(CRMContext);
const [pedidos, setPedidos] = useState([]);
const detallePedido = id => {
props.history.push(`/detalle-pedido/${id}`);
}
const eliminarPedido = () => {
}
useEffect( () => {
if(auth.token !== '') {
//query a la API
const consultarAPI = async () => {
try {
const pedidosConsulta = await clienteAxios.get(`/pedidoscliente/${auth.clienteId}`);
setPedidos(pedidosConsulta.data);
} catch (error) {
if(error.response.status === 500) {
props.history.push('/iniciar-sesion');
}
}
}
consultarAPI();
} else {
props.history.push('/iniciar-sesion');
}
}, [] );
return(
<Fragment>
<div class="row justify-content-end">
<button type="button"
class="btn btn-dark mr-2"
onClick={() => detallePedido(pedido.id)}
>
Ver detalle</button>
</div>
</Fragment>
)
}
export default withRouter(ListadoPedidos);
Комментарии:
1. вы можете опубликовать свой код в stackblitz, и любой может вам помочь.
2. Не могли бы вы включить более длинный фрагмент вашего кода? В идеале весь компонент возможен.
3. этого недостаточно, чтобы мы знали вашу проблему, с которой начинаем, и не можем протестировать, чтобы найти решения.
4. Все выглядит нормально… Откуда вы знаете, что эта конкретная функция запущена? Возможно ли, что что-то еще изменяет путь react-router?
5. попробуйте передать событие в onClick и установите e.preventDefault() в начале