小编Jef*_*Guo的帖子

如何在 React 组件中每分钟调用一个函数?

我制作了一个表格来获取股票报价,效果很好,但是当我尝试在组件中放置一个包含 setState 的函数时,它陷入了无限循环,它会立即触发 setState 并重新渲染并再次触发。

加载此组件时如何调用此函数而不触发无限循环?我会每 10 秒或每分钟调用一次该函数。

import React, { useState } from 'react'
import api from '../../api'

function CreateRow(props){
    
    const [stock, setStock] = useState({symbol:'',last:'',change:''})
    

    async function check() {
        const result = await api.getStock(props.item)
        console.log(props.item)
        const symbol = result.data.symbol
        const lastest = result.data.latestPrice
        const change = result.data.change
        setStock({symbol:symbol, lastest:lastest, change:change})
    }


    // check()   <----------! if I call the function here, it becomes an infinite loop.


    return(
        <tr>
            <th scope="row"></th>
            <td>{stock.symbol}</td>
            <td>{stock.lastest}</td>
            <td>{stock.change}</td>
        </tr>
    )
}

export default CreateRow
Run Code Online (Sandbox Code Playgroud)

javascript reactjs react-redux react-hooks

7
推荐指数
1
解决办法
7783
查看次数

标签 统计

javascript ×1

react-hooks ×1

react-redux ×1

reactjs ×1