111

When I console.log(), the Chrome console gives the log but instead of showing the file and line number it just says react_devtools_backend.js:4049. How do I get the console to show the file and line number when I console.log()?

screenshot of console output showing "react_devtools_backend.js:4049" in place of a correct file and line number

TylerH
  • 20,799
  • 66
  • 75
  • 101
Abby Zhang
  • 1,113
  • 2
  • 5
  • 5

10 Answers10

94

I was able to fix it in my console by adding the file to my Framework Ignore List in Chrome. Steps:

Console -> Gear icon (top right) -> Settings -> Framework Ignore List.

Add react_devtools_backend.js to the list and the console.log should start showing the correct mapping again.

screenshot of Framework Ignore List in Chrome Settings

User
  • 31,811
  • 40
  • 131
  • 232
Sean
  • 2,412
  • 3
  • 25
  • 31
54

It can be disabled in "Components tab". Click the "Gear" icon:

1

Then check "Hide logs during second render in Strict Mode" in the "Debugging" tab:

2

zendka
  • 1,074
  • 12
  • 11
Dmitry
  • 541
  • 4
  • 4
36

Disable the React Devtools extension in your browser.

It looks like that extension needs a fix.

TylerH
  • 20,799
  • 66
  • 75
  • 101
Ziarno
  • 7,366
  • 5
  • 34
  • 40
36

To add a bit more context apparently "it doesn't need a fix" as it's working as intended as per version 18 of 1st of September 2021. See comment of one of the developers on the React GitHub issue.

Quoting here in case you don't want to check the log or it gets deleted:

As of the version 18 release, DevTools always overrides the native console to either dim or suppress StrictMode double logging. (Before it only did it if you enabled a feature like component stacks.)

The major unfortunate drawback of this overriding is that it changes the location shown by the browser's console as reported in this issue.

So I guess that until they change their minds or browsers provide better support, it's time to switch off the extension.

Audwin Oyong
  • 2,247
  • 3
  • 15
  • 32
Alex Lillo
  • 571
  • 4
  • 7
  • 8
    My goodness, it's not really workable, having to enable and disable the extension constantly... Thanks for the info mate! Welcome to Stack :) – Guido Visser Sep 13 '21 at 10:08
21

We can use

console.info(data)

instead of

console.log(data)
nima
  • 7,796
  • 12
  • 36
  • 53
  • 3
    The problem if when an error occurs and the code "breaks", so the developer wants to catch and debug, and if the extension is catching the error before the "real" code does, then the ability to know the exact line of failure is lost – vsync Jan 17 '22 at 17:41
5

I have the same problem since yesterday in both Edge & Chrome, not exactly a solution just a temporary workaround: just disable the react-devtools extension from your browsers extensions.

3

Render your App without the strict mode:

root.render(<App />)

Instead of:

root.render(
  <React.StrictMode>
    <App />
  </React.StrictMode>
)
Alex
  • 283
  • 1
  • 2
  • 12
2

This may be due to the source map option disabled in webpack config file. You need to change your devtool in webpack config as

devtool: "source-map"

or you can control source map generation according to your need. check the documentation of devtool webpack

Sudip Thapa
  • 193
  • 1
  • 1
  • 8
  • 1
    Problematic when using `react-scripts` which handles all the *Webpack* for you as a "black-box" – vsync Jan 17 '22 at 17:43
1

As of React DevTools version 19 of 29 September 2021, this issue has been addressed, as per the comment on the GitHub issue page. So it should show the file and line number again after we update the React DevTools extension to version 4.19.0.

Audwin Oyong
  • 2,247
  • 3
  • 15
  • 32
1

This may happen if you are using React devtools extension in chrome. simply just go to chrome://extensions/ and check, If found then remove it. In my case it worked.