我正在尝试将order
的状态设置为catalog
的内容,但仅当它为true
时,我想我需要编写一个函数来始终监听order
状态的更改。
这是我的状态:
constructor(props) {
super(props)
this.state = {
catalog: [
{
photo: 'https://via.placeholder.com/164x168',
title: 'FirstItem',
description: 'Fugiat nulla incididunt laborum et esse adipisicing esse aliquip.',
size_m: { size: 'M', price: 5000, id: 'FTM', selectedIndicator: '', isSelected: false },
size_l: { size: 'L', price: 8000, id: 'FTL', selectedIndicator: '', isSelected: false },
size_xl: { size: 'XL', price: 10000, id: 'FTXL', selectedIndicator: '', isSelected: false },
},
{
photo: 'https://via.placeholder.com/164x168',
title: 'SecondItem',
description: 'Fugiat nulla incididunt laborum et esse adipisicing esse aliquip.',
size_m: { size: 'M', price: 5000, id: 'SCRM', selectedIndicator: '', isSelected: false },
size_l: { size: 'L', price: 8000, id: 'SCRL', selectedIndicator: '', isSelected: false },
size_xl: { size: 'XL', price: 10000, id: 'SCXL', selectedIndicator: '', isSelected: false },
},
],
order: []
}
}
示例:如果目录
中第一项的size_m
和第二项的size_l
发生更改,则将isSelected
更改为true
,则order
状态应更新。
order: [
{
size_m: { size: 'M', price: 5000, id: 'FTM', selectedIndicator: '', isSelected: true },
size_l: { size: 'L', price: 8000, id: 'SCRL', selectedIndicator: '', isSelected: true }
}
]
这是我的处理程序函数。
setOrder = () => {
const { catalog } = this.state
let catalogOrder = []
catalog.map(item => {
if(item.size_m.isSelected) {
catalogOrder = [item]
}
return this.setState({order: catalogOrder})
})
}
item.size_m.isSelected
- ABGR