打开它后,对象值会立即更改

问题描述 投票:0回答:1

我正在使用Javascript / ReactJS代码,我正在打印Object(Obj),其中包含键作为id和值作为控制台中相应键的状态(true / false)。打印所需的对象,但只要打开该对象,它就会自动更改其值。

这个对象的第一个属性是真的,但是当我打开它时,它会变错。

我在render方法之外声明了Object(Obj),因为它每次都需要或不呈现JSX。但它没有用。

render(){      
 return defaultApp(templates).map(template=>{
         Obj[`${template._id}`] = false;
        return <Apps id={template._id} 
                  onClick={this.handleToggle.bind(this)}>
                  <h2>{template.title}</h2>
               </Apps>
        });
}
  handleToggle =  (e)=>{
        var   selectedAppId = e.target.id?e.target.id:e.target.parentNode.id;
        if(!isEmpty(Obj)) {
          Object.keys(Obj).forEach((id)=>{
            if(selectedAppId===id){
              Obj[selectedAppId] = !Obj[selectedAppId];
              console.log(Obj);
              this.setState({currentAppId:id,AppsStatus:Obj});
            }});
          }

我希望看到相同的Object值,无论是否打开它。

javascript reactjs
1个回答
0
投票

控制台JSON.stringify(obj)检查确切的对象值。

记住对象是引用,因此如果在程序的任何位置更改其键值,则更改将反映在整个代码中,因为所有变量都存储对该对象的引用。

© www.soinside.com 2019 - 2024. All rights reserved.