Reactjs 如何将this.setState转换为setItemIdToSelectedMap?
我想用钩子转换这个函数setStateReactjs 如何将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
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]
}));
};