我无法在处理函数中设置状态

I can't set the state in my handler function

我正在尝试为我的状态设置一个常量,但它似乎在几天前有效时不起作用。

我在这样的函数中调用 setter:

const [activeMarker, setActiveMarker] = useState(null);

const handleActiveMarker = (marker) => {
  if (marker === activeMarker) {
     return;
  }
  setActiveMarker(marker);
  console.log(marker, '--', activeMarker)
};

那叫在

{markers.map(({ id, latitud, longitud}) => (
   <Marker
      key={id}
      position={{lat: latitud, lng: longitud}}
      onClick={() => handleActiveMarker(id) }
   />
))}

属性标记是一个标记数组,它在我的地图中打印得很好,但是当我单击时,在我的处理程序的 console.log 中,我得到标记的 id,在 activeMarker 中得到 null 必须出现相同的数字。

记住 useState 是异步的,所以它不会立即更新。要获取 console.log 值以记录您的值,您应该添加一个 useEffect。

    useEffect(() => {
        console.log(activeMarker)
    },[activeMarker])