Javascript data.map不是函数react redux

Javascript data.map不是函数react redux,javascript,reactjs,dictionary,redux,components,Javascript,Reactjs,Dictionary,Redux,Components,大家好,我的问题如下,我正在使用redux,当我移动到另一个视图并返回到上一个视图时,出于某种原因,我会做出反应。我得到这个错误数据。map不是一个函数,这是我的主要组件 我试图通过验证数组中是否有带“?”的内容来解决它,但它仍然不起作用,我在主路径中添加了一个验证,但它仍然不起作用 const HomeScreen = () => { useEffect(() => { responsiveMobile(); }); return ( <> &

大家好,我的问题如下,我正在使用redux,当我移动到另一个视图并返回到上一个视图时,出于某种原因,我会做出反应。我得到这个错误数据。map不是一个函数,这是我的主要组件 我试图通过验证数组中是否有带“?”的内容来解决它,但它仍然不起作用,我在主路径中添加了一个验证,但它仍然不起作用

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) =>