首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将项添加到数组的开头?

如何将项添加到数组的开头?
EN

Stack Overflow用户
提问于 2022-01-20 12:42:01
回答 1查看 188关注 0票数 0

代码在这个codesandbox.io - https://codesandbox.io/s/react-slider-forked-wu0q6中。

代码语言:javascript
运行
复制
    if (newActiveIndex === slides[slides.length - 1].index) {
      const { slides } = this.state;

      // index (10-3) to (10)
      const add = slides.slice(slides.length - 3);

      const newSlides = slides.unshift(add);
      console.log("newSlides", newSlides);

      this.setState({
        slides: newSlides
      });
    } else {
      this.setState({
        slides: slides
      });
    }
  };

我尝试使用unshift方法,但是当我控制台记录它时,它返回一个数字,而不是一个数组。我想要的是0,1,2,3,4,5变成3,4,5,0,1,2

EN

回答 1

Stack Overflow用户

发布于 2022-01-20 13:17:54

您使用了两个组件,每个组件都有一个状态。当您从dots组件更改状态时,图像组件不知道有更改。因此,解决方案是在App.js中添加活动状态,并将其作为两个组件的支持传递给=>,如果从点中更改它,图像将具有最新的活动索引。

代码语言:javascript
运行
复制
import React from "react";
import ImageSlider from "./components/ImageSlider";
import SliderDots from "./components/SliderDots";
import "./styles.css";

const SliderData = require("./SliderData.json");
/**
 * Convert this to class since you will be working with class!
 */
export default class App extends React.Component {
  state = {
    selectedIndex: 2
  };

  setSelectedIndex = (i) => {
    this.setState({ selectedIndex: i });
  };
  render() {
    return (
      <>
        <ImageSlider
          slides={SliderData}
          selectedIndex={this.state.selectedIndex}
          setSelectedIndex={this.setSelectedIndex}
        />
        <SliderDots
          slides={SliderData}
          selectedIndex={this.state.selectedIndex}
          setSelectedIndex={this.setSelectedIndex}
        />
      </>
    );
  }
}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70786451

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档