我制作了一个表格来获取股票报价,它运作良好,但是当我尝试在组件中放置包含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