Reactjs 内部回调函数-始终显示初始状态
我有一个有状态的函数react组件,其中我还使用了sortablejsReactjs 内部回调函数-始终显示初始状态,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
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]);
})
}