Javascript 是否有一种检查数据是否呈现的简化方法?

Javascript 是否有一种检查数据是否呈现的简化方法?,javascript,reactjs,operators,Javascript,Reactjs,Operators,在获取第一次渲染时未定义的数据时,我们使用短路&&&操作符,例如数据和数据.doSomething检查它是否已渲染,以便执行其他操作,我们会得到一个错误 因此,如果您有n个不同的循环,这取决于该数据,这意味着您必须在循环之前检查n次例如:您需要将该数据循环3次,因此您需要检查3次。 data&&data.mapdata&&data.reducedata&&data.filter,如果您还有依赖于该数据的组件,则这有点重复 我试着把数据放在useffect(setData)上,并从state获取数

在获取第一次渲染时未定义的数据时,我们使用短路
&&&
操作符,例如
数据和数据.doSomething
检查它是否已渲染,以便执行其他操作,我们会得到一个错误

因此,如果您有n个不同的循环,这取决于该数据,这意味着您必须在循环之前检查n次
例如:您需要将该数据循环3次,因此您需要检查3次。
data&&data.map
data&&data.reduce
data&&data.filter
,如果您还有依赖于该数据的组件,则这有点重复

我试着把数据放在useffect(setData)上,并从state获取数据,但您仍然需要进行检查

获取状态
data=useSelector(state=>state.data)

第一次循环获取所有用户
const allUser=data&&data.map.(data=>data.user)

第二循环过滤用户
const allAge=allUser和&allUser.filter(user=>user.age>18)
等等

如您所见,第一个循环取决于获取数据(data),第二个循环取决于第二个循环(allUser)。所以你必须连环检查它。我知道你可以在一个组合映射和过滤器中得到它,但假设你需要这样做。

你可以使用在主要React启动器(CRA、Gatsby、Next.js)中开箱即用的支持

const-App=({data})=>{
返回(
{data?.map()}
{data?.reduce()}
{data?.filter()}
{!数据&&}
);
};

请给出一个具体的例子,而且这个问题被insta-upvote表决也很奇怪。我的答案是,你不必在这里使用
&&
运算符,但你仍然需要将返回值赋给变量ex const newData=data?。map你可以用返回值做任何你喜欢的事情
const App = ({ data }) => {
  return (
    <>
      {data?.map()}
      {data?.reduce()}
      {data?.filter()}
      {!data && <LoadingComponent />}
    </>
  );
};