He estado tratando de obtener datos sin usar setTimeout de la función getProducts. El código obtiene datos una vez en 50 intentos cuando probé la función setTimeout fuera de useEffect. Soy nuevo en reaccionar y estoy tratando de refactorizar el código.
const Allproducts = (props) => { useEffect(() => { let getProductsData = setTimeout(() => props.getProducts(), 10); return() => { clearTimeout(getProductsData); }; },[]); const { data } = props.security; let productsData=[]; if(productsData['SOLDOUT'] === "" || productsData['AVAILABLE'] === "") { productsData= <Loader />; } return( <div> <div> <h1 className="primary-header">Products</h1> <Broadcast/> </div> <Row> <Col> <Jumbotron id="allcards"> <div className="card"> <h2>{productsData['AVAILABLE']}</h2> <h6>Available</h6> </div> </Jumbotron> </Col> <Col> <Jumbotron id="allcards"> <div className="card"> <h2>{productsData['SOLDOUT']}</h2> <h6>Sold out</h6> </div> </Jumbotron> </Col> </Row> </div> ) } const mapStateToProps = (state) => ({ security: state.security, }); export default connect(mapStateToProps, { getProducts })(AllProducts);