Reactjs 如何映射对象的数组并切换选定的布尔属性
我在React功能组件中有状态。它是一个对象和对象数组。该集合中的每个对象都已选定属性,该属性为布尔值。该数组如下所示:Reactjs 如何映射对象的数组并切换选定的布尔属性,reactjs,Reactjs,我在React功能组件中有状态。它是一个对象和对象数组。该集合中的每个对象都已选定属性,该属性为布尔值。该数组如下所示: const [filterOptions, setFilterOptions] = useState([ { title: 'highest', selected: true, }, { title: 'lowest', select
const [filterOptions, setFilterOptions] = useState([
{
title: 'highest',
selected: true,
},
{
title: 'lowest',
selected: false,
},
]);
执行handleFilter func后,我需要设置状态,以便此数组具有相同的标题属性,但反向切换选定属性
这是handleFilter func,我需要在其中切换数组对象的每个选定属性:
const handleFilter = () => {
setFilterOptions();
};
请检查一下,希望它能工作 var arryObj=[ { 标题:"最高",, 选择:正确, }, { 标题:“最低”, 选择:false, }, ] const handleFilter=索引,值=>{ arryObj[index]。所选=值 }; handleFilter0,错误 console.logarryObj handleFilter1,对
console.logarryObj您可以将一个函数传递到setFilterOptions中,以根据以前的状态更改状态
const handleFilter = () => {
setFilterOptions(prevState =>
prevState.map(obj => ({...obj, selected: !obj.selected}))
);
};
你想要什么样的输出?无法从您的帖子中理解,但如果我不知道该数组中的对象数怎么办?我看到你用索引0和1硬编码调用handleFilter?这需要设置为stateyes硬代码,例如,希望您将使用map来呈现这些项目,这样您就可以传递map index和item.selected with sign!这样地!item.selected其意思是item.selected=真且通过!item.selected类似于此,它将更新您的对象示例filterOptions.mapitem,index=>//*用户界面,并像这样单击函数。handleFilterindex!item.selected*///谢谢:-我不知道此解决方案如何切换selected boolean属性?我猜你是说!值对于此解决方案,我得到eslint错误声明或语句expected@Pokreniseweb我的坏,我忘了一对括号哈哈哈。修好了。
const handleFilter = () => {
setFilterOptions(prevState =>
prevState.map(obj => ({...obj, selected: !obj.selected}))
);
};