Reactjs 如何映射对象的数组并切换选定的布尔属性

Reactjs 如何映射对象的数组并切换选定的布尔属性,reactjs,Reactjs,我在React功能组件中有状态。它是一个对象和对象数组。该集合中的每个对象都已选定属性,该属性为布尔值。该数组如下所示: const [filterOptions, setFilterOptions] = useState([ { title: 'highest', selected: true, }, { title: 'lowest', select

我在React功能组件中有状态。它是一个对象和对象数组。该集合中的每个对象都已选定属性,该属性为布尔值。该数组如下所示:

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}))
    );
};