Reactjs 如何将this.setState转换为setItemIdToSelectedMap?

Reactjs 如何将this.setState转换为setItemIdToSelectedMap?,reactjs,react-redux,react-hooks,Reactjs,React Redux,React Hooks,我想用钩子转换这个函数setState this.setState(previousState => { const newItemIdToSelectedMap = { ...previousState.itemIdToSelectedMap, [itemId]: !previousState.itemIdToSelectedMap[itemId], }; return { itemIdToSelectedMap: newItemIdToSelect

我想用钩子转换这个函数setState

this.setState(previousState => {
  const newItemIdToSelectedMap = {
    ...previousState.itemIdToSelectedMap,
    [itemId]: !previousState.itemIdToSelectedMap[itemId],
  };

  return {
    itemIdToSelectedMap: newItemIdToSelectedMap,
  };
});
这是我的初始状态

 const [itemIdToSelectedMap, setItemIdToSelectedMap] = useState({});
我想换成这样

const toggleItem = itemId => {
  setItemIdToSelectedMap(state => ({
    ...state,
    [itemId]: !state.itemIdToSelectedMap[itemId]
   }));
};

这是用于复选框函数的。我想勾选我的特定复选框,但它不起作用。让我知道你的想法。谢谢

您不需要在传递给状态设置程序的calback函数中再次使用
itemIdToSelectedMap
,状态本身具有相同的值,您的函数应该如下所示:

const toggleItem = itemId => {
  setItemIdToSelectedMap(state => ({
    ...state,
    [itemId]: !state[itemId]
   }));
};