根据状态中的其他对象设置状态?

时间:2017-11-26 02:36:46

标签: javascript reactjs

所以我试图通过构建个人启动页面来学习ReactJS。前面的马虎解释。

在我的主app.js文件中,我已经初始化了应用程序的状态,其中包含以下信息:

class App extends Component {
  constructor(props){
    super(props);
    this.state = {
      links: {
        listA: ["CodeCademy","Udemy","StackOverflow","This is list A"],
        listB: ["ADSR","Youtube","Reddit", "This is list B"],
        listC: ["Overwatch", "R6S", "CSGO", "This is list C"],
        listD: ["Soundcloud", "Pandora", "Spotify", "This is list D"]
      },
      linkbar: {
        links1: "coding",
        links2: "chillin",
        links3: "vidya",
        links4: "music"
      },
      //activeList : something
    }; //etc

但是对于我的生活,我无法弄清楚是否有办法从现有房产中取出房产。在这种情况下,我想通过引用引用其中一个activeList数组的this.state.links对来交换列表。但是,每当我尝试引用数组时,都会导致错误,指出activeList未定义。

我在这里遗漏了什么吗?是否有一种不同的方法可以通过一种方法来解决这个问题?是否可以在状态中定义activeList或者是否需要通过const在外部完成?感谢任何指导,学习React对我来说有点粗糙。干杯!

1 个答案:

答案 0 :(得分:2)

与州内多个级别进行交互的唯一方法是操纵状态之外的对象,然后将其传入。

从我看到的代码中,我不确定为所有这些状态玩状态是最好的主意。不过这是一个例子。

myHandler() {
    var levelA = {...this.state.levelA};
    levelA.levelB = ["hello"];
    // so something
    this.setState(levelA);
}