Comments (4)
@Janelaxagh please don't reply with chatgpt or whatever answers, I've seen this on a few issues and it's often wrong. I've hidden your comment, because it's very wrong this time.
from react.
Sorry about the silly mistake. The bug is still present even with a fixed dependency array. I opened a new issue with a codesandbox example to make it clearer: #28304
from react.
This seems like an issue related to the timing of when the useEffect
hook captures the variables (a
and b
) and when it executes. React doesn't guarantee the exact order in which effects are executed, especially in scenarios like yours where quick updates or multiple changes are occurring.
The behavior you're experiencing might occur due to the asynchronous nature of how React batches updates and executes effects. The effect captures the values at the time it's created, but by the time it runs, those values might have changed, especially if changes are happening rapidly.
One potential way to address this is to use a ref
to hold the variables, capturing their current values at the time the effect runs. This way, you can ensure the effect uses the most recent values.
Here's an example:
import { useEffect, useRef } from 'react';
function useWtf(a?: string, b?: string) {
const aRef = useRef(a);
const bRef = useRef(b);
useEffect(() => {
aRef.current = a;
bRef.current = b;
console.log("inside effect", aRef.current, bRef.current);
}, [a, b]);
console.log("outside effect", a, b);
}
By using useRef
, you maintain a reference to the latest values of a
and b
. This doesn't change the asynchronous nature of React, but it ensures that when the effect runs, it uses the most recent values captured in the ref
objects.
from react.
@pgsandstrom the scope is stale because your effect uses a variable b
but doesn't include in the the dependencies. If you enable the react-hooks/exhaustive-deps
lint rule, you'll see the error that catches this (sandbox):
React Hook useEffect has a missing dependency: 'b'. Either include it or remove the dependency array.
(react-hooks/exhaustive-deps)
from react.
Related Issues (20)
- In react fiber, is didReceiveUpdate related to dirty checking?
- Naming convention HOT 1
- Bug: Rapid click fails to catch the onClick event properly
- Bug: script element not suspending in canary
- Bug: [PPR] Resume failed when "moduleLoading === undefined" in function prepareDestinationWithChunks
- Bug: Expected a suspended thenable. HOT 1
- Bug: componentDidMountCalled before ref is set HOT 3
- Please allow indie developers to impelement Facebook Login without business verification HOT 1
- Bug: HOT 1
- Bug: when useEffect's dependency array is empty
- Bug: متجر الكتروني
- Bug: Internal React error: Expected static flag was missing. HOT 3
- Bug: Additional updater function call is not ignored in Strict Mode HOT 1
- Bug: `react-hooks/rules-of-hooks` does not support `do/while` loops HOT 1
- Bug: React server components give type error in react 19 HOT 2
- Bug: Eager bailout when calling the state setter function multiple times HOT 4
- Bug: Multiple renderings in the same dom without being overwritten, all renders are displayed HOT 2
- Bug: React const function getting previous version of state value when calling the function. HOT 1
- Bug: Manually added event listener always triggered HOT 1
- donde verlo
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from react.