Javascript data.map不是函数react redux
大家好,我的问题如下,我正在使用redux,当我移动到另一个视图并返回到上一个视图时,出于某种原因,我会做出反应。我得到这个错误数据。map不是一个函数,这是我的主要组件 我试图通过验证数组中是否有带“?”的内容来解决它,但它仍然不起作用,我在主路径中添加了一个验证,但它仍然不起作用Javascript data.map不是函数react redux,javascript,reactjs,dictionary,redux,components,Javascript,Reactjs,Dictionary,Redux,Components,大家好,我的问题如下,我正在使用redux,当我移动到另一个视图并返回到上一个视图时,出于某种原因,我会做出反应。我得到这个错误数据。map不是一个函数,这是我的主要组件 我试图通过验证数组中是否有带“?”的内容来解决它,但它仍然不起作用,我在主路径中添加了一个验证,但它仍然不起作用 const HomeScreen = () => { useEffect(() => { responsiveMobile(); }); return ( <> &
const HomeScreen = () => {
useEffect(() => {
responsiveMobile();
});
return (
<>
<Banner id="BannerHome">
<img src="/assets/images/Banner.png" alt="" />
</Banner>
<ListAdopt>
<SubTitle className="space m-0" style={{ textAlign: "center" }}>
¿Quieres Adoptar?
</SubTitle>
<div className="content-swiper">
<ContainerTwo>
<SwiperAdopt />
<ButtonTarjet>
<Link to="/">
VER TODOS
</Link>
</ButtonTarjet>
</ContainerTwo>
</div>
</ListAdopt>
<ListNotAdopt className="adopt">
<SubTitle className="space m-0" style={{ textAlign: "center" }}>
Animales adoptados recientemente
</SubTitle>
<AdoptAnimal>
<ContainerTwo>
<SwiperNotAdopt />
<ButtonTarjet>
<Link to="/">
VER TODOS
</Link>
</ButtonTarjet>
</ContainerTwo>
</AdoptAnimal>
</ListNotAdopt>
<ListAdopt className="p-0">
<div className="container-fluid">
<div className="row">
<LeftContent className="col-6">
<ContainerLeft>
<Campanias />
</ContainerLeft>
</LeftContent>
<BackgroundCampania className="col-6">
<img src="/assets/images/bannerDos.png" alt="banner" />
</BackgroundCampania>
</div>
</div>
</ListAdopt>
<ModalLogin />
</>
const主屏幕=()=>{
useffect(()=>{
responsiveMobile();
});
返回(
你喜欢安静吗?
弗托多
动物收容所
弗托多
));
};
这是验证
useEffect(() => {
dispatch(loadAnimals());
firebase.auth().onAuthStateChanged((user) => {
if (user?.uid) {
dispatch(login(user.uid, user.displayName, user.email));
setLog(true);
}
});
setTimeout(() => {
setLoad(true);
}, 1500);
}, [dispatch]);
if (!load) {
return <h1>Espere...</h1>;
}
useffect(()=>{
调度(装载动物());
firebase.auth().onAuthStateChanged((用户)=>{
如果(用户?.uid){
发送(登录(user.uid、user.displayName、user.email));
setLog(真);
}
});
设置超时(()=>{
设置负载(真);
}, 1500);
},[发送];
如果(!加载){
在……之前返回。。。;
}
这就是接收错误的组件
const SwiperAdopt = () => {
const { data } = useSelector((state) => state.load);
return (
<Swiper
spaceBetween={0}
autoplay={{
delay: 3000,
}}
pagination={{ clickable: true }}
breakpoints={{
600:{
slidesPerView: 1
},
650:{
slidesPerView: 2
},
1000:{
slidesPerView: 3
}
}}
>
{data?.map((animal) => {
if (!animal.adopt) {
return (
<SwiperSlide key={animal.id} className="height-swiperTwo">
<HeaderAdopt
style={{ backgroundImage: `url(${animal.image})` }}
></HeaderAdopt>
<BodyAdopt className="py-4">
<ContainerBody>
<TitletBody className="pb-2">{animal.title}</TitletBody>
<Paragraph style={{ textAlign: "center" }}>
{animal.description}
</Paragraph>
<ButtonTarjet>
<Link to={`/details/${animal.id}`}>CONOCER MÁS</Link>
</ButtonTarjet>
</ContainerBody>
</BodyAdopt>
</SwiperSlide>
);
}
return false;
})}
</Swiper>
);
};
const SwiperAdopt=()=>{
const{data}=useSelector((state)=>state.load);
返回(
{data?.map((动物)=>{
如果(!动物收养){
返回(
{动物名称}
{动物描述}
科诺塞尔马斯酒店
);
}
返回false;
})}
);
};
请在使用useSelector时尽量不要破坏数据,而是像这样使用它:
const data=useSelector((state)=>state.load)代码>
而不是
data?.map((animal) =>
使用
似乎导航后数据更新到了某个对象,请确保load reducer中的数据必须是数组,
data?.data?.map((animal) =>