如何将this.setState转换为setItemIdToSelectedMap?

时间:2020-03-25 08:31:49

标签: reactjs react-redux react-hooks

我想使用钩子将此函数setState转换

class MyApplication: Application() {

    companion object {
        var myObject: CustomClass? = null
    }
}

这是我的初始状态

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

  return {
    itemIdToSelectedMap: newItemIdToSelectedMap,
  };
});

我想转换成这样

 const [itemIdToSelectedMap, setItemIdToSelectedMap] = useState({});

这是复选框功能。我想选中我的特定复选框,但是它不起作用。让我知道你的想法。谢谢

1 个答案:

答案 0 :(得分:1)

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

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