【发布时间】:2020-11-07 21:59:32
【问题描述】:
ReactJS:如何在 State(useState) 中获取响应数组并在渲染/绑定时检查数组的长度。 我不知道将 recentData 数组设置为 useState 以获取返回中的长度。
import React, { useState } from "react";
import UseData from "../../hooks/useData";
const HomePage = (props) => {
const [data, setData] = useState(false);
!data &&
UseData(formattedData => {
const { hasError, recentData } = formattedData;
console.log(recentData) //// recentData has response
if (hasError) {
//
} else {
setData(recentData);
}
})
return (
// I want to get 'recentData' here like recentData.length > 0, have 'data' set true
{data && data.map((info, i) => (
<Grid key={i}>
member={info.firstName}
</Grid>
))}
// I want to get 'recentData' recentData.length === 1,
{data &&
<Grid key={i}>
member={info.firstName}
</Grid>
))}
// I want to get 'recentData' recentData.length === 0
<Grid >
No data to render
</Grid>
)
}
export default HomePage
recentData array returned from the useData hook
0:
{firstName: "XXXX"
lastName: "YYYY"}
1:
{firstName: "AAAA"
lastName: "BBBBB"}
2:
{firstName: "CCCC"
lastName: "DDDD"}
我不知道将recentData 数组设置为useState 以获得返回中的长度。
【问题讨论】:
-
UseData是做什么的? -
useData 调用其他钩子来访问常量 JSON 端点并存储响应。它还通过解构数组来包含格式化的响应数据,以供其他组件通过 props 用作对象
-
所以你有
setData()和UseData()?您可以在问题中添加UseData()吗? -
UseData 钩子返回上面附加的数组。
-
你不能像这样
!data &&UseData(...)有条件地调用UseData钩子,它违反了钩子规则:reactjs.org/docs/…
标签: javascript reactjs react-hooks render use-state