Home > front end >  React Native - useState not updating immediatly
React Native - useState not updating immediatly

Time:08-15

I'm trying to update my state when onLongPress triggered.
I'm printing the result right after the setState but it shows nothing (on the first press) Code:

const [pressedImagesm setPressedImages] = useState([]);
...
onLongPress={() => {
          setPressedImages(oldArray => [...oldArray, { [index]: true }]);
          console.log(pressedImages);
}}

CodePudding user response:

That's because setPressedImages does not update the state object (pressedImages) directly. Instead, it adds this update to a queue, and the updated state is reflected on the next render of your component.

This is a pretty common React question - there's a lot of helpful content out there that explains it in more detail (such as this article or this SO question).

CodePudding user response:

try this:

const [pressedImages, setPressedImages] = useState([]);
...
onLongPress={() => {
   const cloneArray = [...pressedImages];
   cloneArray.push({ [index]: true });
   setPressedImages(cloneArray);
}}

console.log('Updated pressedImages:', pressedImages);

  • Related