Javascript 为什么may数组返回空?
您好,我是新的反应,并试图使用onSelect返回与该名称关联的项目数组。我正在使用点过滤器方法过滤数组,以便只显示与所选名称具有相同键的项。但是,我的数组返回空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
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将只显示更新之前的状态。