Reactjs 无法从状态获取值

Reactjs 无法从状态获取值,reactjs,react-hooks,react-functional-component,Reactjs,React Hooks,React Functional Component,有人能给我解释一下为什么这样的东西不起作用吗 const [myState, setState] = React.useState<any>(undefined); let someOnClickFunction = (e) => { console.log(myState) //undefined on second click if(myState !== e.target) { //error myState is undefined consol

有人能给我解释一下为什么这样的东西不起作用吗

const [myState, setState] = React.useState<any>(undefined);


let someOnClickFunction = (e) => { 
  console.log(myState) //undefined on second click
  if(myState !== e.target) { //error myState is undefined 
    console.log("State is different from event")
  }

 setState(e.target)

}
问题的特定代码:

     React.useEffect(() => {

    new L.GeoJSON(getGeoJson(), {
      onEachFeature: function (feature, layer) {
        layer.on('click', onLayerClick);
        layer.on('pm:enable', onLayerEditingStart);
        layer.on('pm:disable', onLayerEditingDisable);
        layer.on('pm:update', onLayerEdited);
      }
    }).addTo(features).setStyle({weight: 8});
  }, [mapRef, selectedLayer]);


      let onLayerClick = (e) => {

      if(!(selectedLayer instanceof L.Marker)) { //need this if to have valueof selectedLayer
        selectedLayer.setStyle({color: '#3388ff', weight: 5})
      }
      console.log("selected before")
      console.log(selectedLayer) //undefined -- expected value from last click
      //selectedLayer = e.target;
      setSelectedLayer(e.target)
      console.log("selected after")
      console.log(selectedLayer) //still undefined -- expected value from state set 2 lines above.
  };

状态更改是异步的

要遵循它,可以使用useEffect

React.useEffect(()=>{
    console.log("in useEffect ",myState)
},[myState])

你能提供一个更完整的代码片段吗?请显示更多的代码好的,实际的代码与原始问题非常不同。请参阅–设置状态后,您需要继续使用
e.target
(不会立即更改)
React.useEffect(()=>{
    console.log("in useEffect ",myState)
},[myState])