React: Bug: fix BigInt in copyElementPath in react-devtools

Created on 23 Jan 2020  路  7Comments  路  Source: facebook/react

This is a continuation of an previous issue to add support for the BigInt data type in React DevTools.

Original PR https://github.com/facebook/react/pull/17233 (merged)

This happens when you try to copy a BigInt value to clipboard via React DevTools.

Would @nutboltu mind taking a look?

backend.js:1 Uncaught TypeError: Do not know how to serialize a BigInt
    at JSON.stringify (<anonymous>)
    at c (backend.js:1)
    at Object.copyElementPath (backend.js:6)
    at t.<anonymous> (backend.js:6)
    at t.r.emit (backend.js:6)
    at backend.js:32
    at t (backend.js:8)
c @ backend.js:1
copyElementPath @ backend.js:6
(anonymous) @ backend.js:6
r.emit @ backend.js:6
(anonymous) @ backend.js:32
t @ backend.js:8
postMessage (async)
(anonymous) @ contentScript.js:1
<./app-insights/app-insights>:50 Uncaught TypeError: Cannot read property 'message' of null
    at trackError (<./app-insights/app-insights>:50)
    at eval (<./app-insights/app-insights>:22)
trackError @ <./app-insights/app-insights>:50
eval @ <./app-insights/app-insights>:22
setTimeout (async)
eval @ <./app-insights/app-insights>:21
error (async)
initAppInsights @ <./app-insights/app-insights>:17
main @ VM70658 client>:101
main @ ./../../../node_modules/@tessin/tcm/lib/dev/boot-loader:31
async function (async)
main @ ./../../../node_modules/@tessin/tcm/lib/dev/boot-loader:27
(anonymous) @ 219:3435
backend.js:1 Uncaught TypeError: Do not know how to serialize a BigInt
    at JSON.stringify (<anonymous>)
    at c (backend.js:1)
    at Object.copyElementPath (backend.js:6)
    at t.<anonymous> (backend.js:6)
    at t.r.emit (backend.js:6)
    at backend.js:32
    at t (backend.js:8)
c @ backend.js:1
copyElementPath @ backend.js:6
(anonymous) @ backend.js:6
r.emit @ backend.js:6
(anonymous) @ backend.js:32
t @ backend.js:8
postMessage (async)
(anonymous) @ contentScript.js:1
<./app-insights/app-insights>:50 Uncaught TypeError: Cannot read property 'message' of null
    at trackError (<./app-insights/app-insights>:50)
    at eval (<./app-insights/app-insights>:22)
trackError @ <./app-insights/app-insights>:50
eval @ <./app-insights/app-insights>:22
setTimeout (async)
eval @ <./app-insights/app-insights>:21
error (async)
initAppInsights @ <./app-insights/app-insights>:17
main @ VM70658 client>:101
main @ ./../../../node_modules/@tessin/tcm/lib/dev/boot-loader:31
async function (async)
main @ ./../../../node_modules/@tessin/tcm/lib/dev/boot-loader:27
(anonymous) @ 219:3435
backend.js:1 Uncaught TypeError: Do not know how to serialize a BigInt
    at JSON.stringify (<anonymous>)
    at c (backend.js:1)
    at Object.copyElementPath (backend.js:6)
    at t.<anonymous> (backend.js:6)
    at t.r.emit (backend.js:6)
    at backend.js:32
    at t (backend.js:8)
c @ backend.js:1
copyElementPath @ backend.js:6
(anonymous) @ backend.js:6
r.emit @ backend.js:6
(anonymous) @ backend.js:32
t @ backend.js:8
postMessage (async)
(anonymous) @ contentScript.js:1
<./app-insights/app-insights>:50 Uncaught TypeError: Cannot read property 'message' of null
    at trackError (<./app-insights/app-insights>:50)
    at eval (<./app-insights/app-insights>:22)
Developer Tools Bug good first issue (taken)

Most helpful comment

@nutboltu: This issue is all yours! 馃槃

I've added the "good first issue (taken)" label so that others will know not to start work on the issue. If you change your mind about the issue, no worries! Just let me know so that I can remove the label and free it up for someone else to claim.

Cheers!

All 7 comments

@leidegre I will take a look.

@nutboltu: This issue is all yours! 馃槃

I've added the "good first issue (taken)" label so that others will know not to start work on the issue. If you change your mind about the issue, no worries! Just let me know so that I can remove the label and free it up for someone else to claim.

Cheers!

Hey @nutboltu how's this task coming along? :)

@bvaughn Raised a PR. https://github.com/facebook/react/pull/17931 . I need to test it in local properly. currently having issue with the devtools-extension in my local machine.

You should be able to test this using the testing harness app:
https://github.com/facebook/react/tree/master/packages/react-devtools-shell

Might be easier. Just add a BigInt prop to UnserializableProps for exampe.

react-devtools-shell is really handy to test :)

Yes. It's what I typically use when building a new feature. Then I just do a final test in the actual extension.

Was this page helpful?
0 / 5 - 0 ratings