Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 内部回调函数-始终显示初始状态_Reactjs_Callback_Closures_React Hooks_Sortablejs - Fatal编程技术网

Reactjs 内部回调函数-始终显示初始状态

Reactjs 内部回调函数-始终显示初始状态,reactjs,callback,closures,react-hooks,sortablejs,Reactjs,Callback,Closures,React Hooks,Sortablejs,我有一个有状态的函数react组件,其中我还使用了sortablejs const myComponent = () => { const [myData, setMyData] = useState([...some initial array data...]); const testMe = () => console.log(myData) useEffect(() => { const sortableContainer = document.que

我有一个有状态的函数react组件,其中我还使用了sortablejs

const myComponent = () => {
  const [myData, setMyData] = useState([...some initial array data...]);
  const testMe = () => console.log(myData)
  useEffect(() => {
   const sortableContainer = document.querySelector(".slick-track");
   Sortable.create(sortableContainer, {
        onEnd: () => testMe() //onEnd is a callback from sortablejs api, that fires after we drag an item
   }, []);
因此,无论myData在组件生命周期中如何变化,在这个回调中它总是显示初始数据。那么,是否有可能在这个回调中获取当前的
myData
值呢?

在这里找到了答案

我应该这样使用prevState:

const testMe = () => {
     setMyData(currentData => {
             console.log('Here is my current data', currentData); 
             return ([...prevState, //here add changes to state]);
      })
}