Javascript 为什么may数组返回空?

Javascript 为什么may数组返回空?,javascript,arrays,reactjs,Javascript,Arrays,Reactjs,您好,我是新的反应,并试图使用onSelect返回与该名称关联的项目数组。我正在使用点过滤器方法过滤数组,以便只显示与所选名称具有相同键的项。但是,我的数组返回空 class HorizantScroller extends React.Component { state = { selected: 'Brands', statelist: [ {name: "Brands", items: ["1", "2", "3"] }, {name: "Film

您好,我是新的反应,并试图使用onSelect返回与该名称关联的项目数组。我正在使用点过滤器方法过滤数组,以便只显示与所选名称具有相同键的项。但是,我的数组返回空

class HorizantScroller extends React.Component {

  state = {
    selected: 'Brands',
    statelist: [
  {name: "Brands",
    items: ["1", "2", "3"]
  },
  {name: "Films",
    items: ["f1", "f2", "f3"]
  },
  {name: "Holiday Destination",
    items: ["f1", "f2", "f3"]
  }
]

  };



  onSelect = key => {
    this.setState({ selected: key });
    const myList = this.state.statelist;
    const myItemDetails = myList.filter(items=>items.key === key);
    console.log(myItemDetails)

  }


  render() {
    const { selected } = this.state;
    // Create menu from items
    const menu = Menu(this.state.statelist, selected);
    const {statelist} = this.state;


    return (
      <div className="HorizantScroller">
        <ScrollMenu
          data={menu}
          arrowLeft={ArrowLeft}
          arrowRight={ArrowRight}
          selected={selected}
          onSelect={this.onSelect}
        />

      <Items Items={Items[selected]}/>

      </div>

    );
  }
}

export default HorizantScroller;

根据您的数据结构,您需要使用use item.name来检查selectedKey

myList.filter(items=>items.name === key);
注意:必须确保筛选数组后没有更新stateList状态,否则您的状态将丢失数据


相反,您必须使用另一个状态变量来存储筛选列表或在渲染时应用筛选器,而不是将筛选值存储在状态中。根据您的数据结构,您需要使用use item.name来检查selectedKey

myList.filter(items=>items.name === key);
注意:必须确保筛选数组后没有更新stateList状态,否则您的状态将丢失数据


相反,您必须使用另一个状态变量来存储筛选列表或在渲染时应用筛选器,而不是将筛选值存储在状态中

状态更新是异步的,因此console.logmyItemDetails将仅显示更新之前的状态。状态更新是异步的,因此console.logmyItemDetails将只显示更新之前的状态。