【问题标题】:IonSlides render something on lastSLide. Ionic ReactIonSlides 在 lastSLide 上渲染一些东西。离子反应
【发布时间】:2021-06-07 14:39:12
【问题描述】:

当我到达 lastSlide 时,我想动态显示我的按钮,但它死掉似乎不起作用。

我正在尝试使用 FindIndex 来查找实际上在 lastSlide 上的 someText 并且没有任何反应

控制台打印出4,因为我在数组中有5 项目,这是正确的,但我无法向dom 渲染一些东西

如果IonSlides Component 本身有任何其他选项,我将不胜感激,因为ionic 提供的onSlideReachEnd 事件不起作用。

  const lastIndex = slideContent.findIndex((element) => {
    if (element.slideTitle === "Safe & Secure") {
      return true;
    }
    return false;
  });

  console.log(lastIndex); // 4

  return (
    <IonPage>
      <div className="content">
        <IonSlides pager={true} options={slideOpts}>
          {slideContent.map((slide, idx) => (
            <IonSlide key={idx}>
              <div>
                <img
                  src={slide.slideImage}
                  alt={slide.slideAltText}
                  className={slide.slideClassName}
                />
                <IonText>
                  <h5 className="mb-1 fw-bold">{slide.slideTitle}</h5>
                </IonText>
                <IonText color="primary" className="fw-bold">
                  <h4 className="mt-0 bold h4"> {slide.slidePrimaryText} </h4>
                </IonText>
                <div className="pt-0 px-5 pb-4">
                  <IonText>
                    <h6 className="fs-md mb-6 line-h fw-sm fw-reg tet-color">
                      {slide.slideText}
                      {slide.slideSecoundaryText && (
                        <IonText color="primary" className="fw-bold ">
                          <h6 className="mt-0 fs-md bold mt-3">
                            {slide.slideSecondaryText}
                          </h6>
                        </IonText>
                      )}
                    </h6>
                  </IonText>

                  {slide.slideBtn && (
                    <IonButton
                      shape="round"
                      fill="clear"
                      className="btn f-inherit"
                      size="small"
                    >
                      Stuff
                    </IonButton>
                  )}

                  {idx}
                </div>
              </div>
            </IonSlide>
          ))}
        </IonSlides>
      </div>

      {lastIndex && (
        <div className="ion-padding">
          <IonGrid>
            <IonRow>
              <IonCol size="6">
                <IonButton
                  expand="block"
                  className="btn"
                  size="small"
                  onClick={() => navigate("/login", "forward")}
                >
                  Login
                </IonButton>
              </IonCol>
              <IonCol size="6">
                <IonButton
                  expand="block"
                  fill="outline"
                  onClick={() => navigate("/get-started", "forward")}
                  className="btn"
                  size="small"
                >
                  Get Started
                </IonButton>
              </IonCol>
            </IonRow>
          </IonGrid>
        </div>
      )}
    </IonPage>

);

【问题讨论】:

    标签: javascript reactjs ionic-framework ionic5


    【解决方案1】:
    const SlidePage = () => {
      const [isLastSlide, setIsLastSlide] = useState();
    
      const slideChanged = async e => {
        const r = await e.target.isEnd();
        setIsLastSlide(r);
        console.log("isEnd", r);
      };
    
      return (
        <IonPage>
          <IonContent>
            <IonSlides pager={true} onIonSlideDidChange={slideChanged}>
              <IonSlide>
                <h1>Slide 1</h1>
              </IonSlide>
              <IonSlide>
                <h1>Slide 2</h1>
              </IonSlide>
              <IonSlide>
                <h1>Slide 3</h1>
              </IonSlide>
            </IonSlides>
            {isLastSlide && <h1 style={{ textAlign: "center" }}>IS LAST SLIDE</h1>}
          </IonContent>
        </IonPage>
      );
    

    监听幻灯片更改事件,如果是最后一张幻灯片,则更新状态。

    onIonSlideDidChange

    stackblitz 上的工作示例 - https://stackblitz.com/edit/react-w5gawb?file=src%2FApp.js

    【讨论】:

    • 像魅力一样工作
    猜你喜欢
    • 1970-01-01
    • 2013-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-12
    相关资源
    最近更新 更多