小编Pac*_*mit的帖子

你可以在useEffect中使用array.push吗?反应钩子

我正在尝试找出一种将对象添加到数组中的方法。这是代码。

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。我哪里出错了?

javascript arrays reactjs react-hooks

2
推荐指数
1
解决办法
6250
查看次数

仅在 API 请求完成后渲染组件 React hooks

当我的图表组件呈现时,由于其初始状态(在 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)

这是子图表组件,基本上当我从 …

javascript rest reactjs axios react-hooks

0
推荐指数
1
解决办法
7113
查看次数

标签 统计

javascript ×2

react-hooks ×2

reactjs ×2

arrays ×1

axios ×1

rest ×1