我正在尝试找出一种将对象添加到数组中的方法。这是代码。
export default function DashboardTable(props) {
const { transactionData } = props;
const classes = useStyles();
const [transactionDataArray, setTransactionDataArray] = useState([])
useEffect(() => {
setTransactionDataArray(transactionDataArray.push(transactionData))
}, [transactionData])
console.log(transactionDataArray);
Run Code Online (Sandbox Code Playgroud)
transactionData 返回对象(对象的数量根据后端事务而变化。)我想将对象添加到数组中transactionDataArray,但我不断收到错误transactionDataArray is not a function。我哪里出错了?
当我的图表组件呈现时,由于其初始状态(在 API 响应之前是一个空数组)而出现错误。它会说类似的内容Cannot read property '0' of undefined,因为当组件加载时,它的初始状态是,嗯......一个空数组。所以我想知道是否有办法让组件仅在收到 API 响应后才渲染。
这是父组件:
function InformationPage({
match: {
params: { symbol },
},
}) {
const [chartData, setChartData] = useState([]); {/*Declaring state*/}
useEffect(() => { {/*Fetching API response here to set state*/}
axios
.get(
`https://finnhub.io/api/v1/stock/candle?symbol=${symbol}&resolution=15&from=1572651390&to=1602623478&token=xxxxxxxxx`
)
.then((res) => {
console.log(res.data);
setChartData(res.data);
})
.catch((err) => {
console.log(err);
});
}, [symbol]);
return (
<Grid item container xs={12} sm={12} md={6} lg={8}>
{chartData && <QuoteChart chartData={chartData} iex={iex} />}
</Grid>
);
}
export Default InformationPage;
Run Code Online (Sandbox Code Playgroud)
这是子图表组件,基本上当我从 …