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 />}
</>
);
};