New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Pie chart with animation causes 'non-unique keys' react-dom warning #4004
Comments
## Description Updates the `key` value for pie sectors ## Related Issue [4004](#4004) ## Motivation and Context Fix a duplicate-key error ## How Has This Been Tested? - [x] new passing test based on codesandbox example in original issue ## Types of changes - [x] Bug fix (non-breaking change which fixes an issue) ## Checklist: - [x] My code follows the code style of this project. - [x] I have added tests to cover my changes. - [x] All new and existing tests passed.
@imagineLife it looks like there are more instances of this. Can you go through the demo and look for all instances? They don't show on the storybook for some reason...
|
same with legend item |
Surely 👍
|
Summarized over there |
## Description In pursuit of removing all `no-array-index-key` lint-skipping instances, some keys are more complicate to set, particularly - Labels - Tooltips - Pie segments ## Related Issue [4004](#4004) [3273](#3273) ## Motivation and Context _Remove immediately-discovered console warnings based on demo charts_. ## How Has This Been Tested? - [x] manual usage of demo charts - [x] unit tests are still passing ## Types of changes - [x] "Bug" fix (non-breaking change which fixes an issue) ## Checklist: - [x] My code follows the code style of this project. - [x] All new and existing tests passed.
This should be resolved in the latest (see sandbox https://codesandbox.io/s/pie-chart-of-straight-angle-forked-rvsnly) We'll try to be more careful when making key changes! |
[![Mend Renovate logo banner](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [recharts](https://togithub.com/recharts/recharts) | [`2.10.2` -> `2.10.3`](https://renovatebot.com/diffs/npm/recharts/2.10.2/2.10.3) | [![age](https://developer.mend.io/api/mc/badges/age/npm/recharts/2.10.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/recharts/2.10.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/recharts/2.10.2/2.10.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/recharts/2.10.2/2.10.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>recharts/recharts (recharts)</summary> ### [`v2.10.3`](https://togithub.com/recharts/recharts/releases/tag/v2.10.3) [Compare Source](https://togithub.com/recharts/recharts/compare/v2.10.2...v2.10.3) #### What's Changed - Fix non-unique react `key` bug(s) by [@​imagineLife](https://togithub.com/imagineLife) in [recharts/recharts#4006 - closes [recharts/recharts#4004 #### New Contributors - [@​hkmarques](https://togithub.com/hkmarques) made their first contribution in [recharts/recharts#4002 **Full Changelog**: recharts/recharts@v2.10.2...v2.10.3 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/SAP/ui5-webcomponents-react). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy41OS44IiwidXBkYXRlZEluVmVyIjoiMzcuNTkuOCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Unfortunately, it seems that |
Hi @HHongSeungWoo 👋 Do you have &/or can you put together an example showing the key error, like a code sandbox? :/ The |
Hello~! It seems that errors may occur when directly controlling the axis. It appears that in some cases, entry.x or entry.y could become null or NaN. |
Hi!
The warning only shows when two bars have the exact same values. E.g.:
Warnings are:
|
Is this after updating to 2.10.4? |
It happens with both |
Thanks - sorry about this, these key issues are hard to manage... |
@imagineLife - I don't think its possible to use your approach for |
Hello all 👋 @ckifer @DiegoZan can a separate issue+codesandbox be made to show the key error? |
I have also been facing this warning with PieChart.
|
Can you provide us the data that causes this? |
@ckifer CodeSandbox to check out. |
following |
re-added index in 2.12. Not the end of the overall issue but should resolve the errors |
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [recharts](https://togithub.com/recharts/recharts) | [`2.9.3` -> `2.12.1`](https://renovatebot.com/diffs/npm/recharts/2.9.3/2.12.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/recharts/2.12.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/recharts/2.12.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/recharts/2.9.3/2.12.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/recharts/2.9.3/2.12.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>recharts/recharts (recharts)</summary> ### [`v2.12.1`](https://togithub.com/recharts/recharts/releases/tag/v2.12.1) [Compare Source](https://togithub.com/recharts/recharts/compare/v2.12.0...v2.12.1) #### What's Changed Unintentional regression broke panoramic/compact Brush in 2.11.0 and 2.12.0, backport the fix to 2.x as we work on 3.x ##### Fix - fix: compact render should read from context, fixes brush panorama by [@​ckifer](https://togithub.com/ckifer) in [recharts/recharts#4194 fixes [recharts/recharts#4193 **Full Changelog**: recharts/recharts@v2.12.0...v2.12.1 ### [`v2.12.0`](https://togithub.com/recharts/recharts/releases/tag/v2.12.0) [Compare Source](https://togithub.com/recharts/recharts/compare/36c14c63d271d05b701e1d32ac931de0fd30b360...v2.12.0) #### What's Changed Bug fixes and a few small new features. Releasing 2.12.0 to create a "clean slate" as contributors are discussing next moves for recharts. We will try to focus on upgrades, architectural changes, and long-pending breaking changes so we can release a recharts v3. This will not be a large major version, or one hard to upgrade to, but rather a major version bump to prevent us from breaking people with library upgrades, large refactors, etc. Feature parity should hold. Thanks! #### Features - `Bar`: Accept a callback function for `minPointSize` so it can be determined by data by [@​ckifer](https://togithub.com/ckifer) in [recharts/recharts#4099 closes [recharts/recharts#2819 - `Accessibility`: Enable screen reader support with accessibilityLayer and default tooltip by [@​julianna-langston](https://togithub.com/julianna-langston) in [recharts/recharts#4077 #### Fix - `Bar`: `activeBar` should not be true by default, fixes a breaking change from 2.9.0 by [@​ckifer](https://togithub.com/ckifer) in [recharts/recharts#4139 - fixes [recharts/recharts#4103 and [recharts/recharts#4101 - `Scatter`: fix non-unique key errors by [@​imagineLife](https://togithub.com/imagineLife) in [recharts/recharts#4087 - fixes [recharts/recharts#4151 and [recharts/recharts#4060 - `Pie`: fix non-unique key errors by [@​imagineLife](https://togithub.com/imagineLife) in [recharts/recharts#4106 - `Tooltip`: fix bug that caused throttled tooltip to stay active when moving mouse quickly by [@​HHongSeungWoo](https://togithub.com/HHongSeungWoo) in [recharts/recharts#4100 fixes [recharts/recharts#4093 #### Chore - Cleanup, tests, and refactoring work. Thanks [@​PavelVanecek](https://togithub.com/PavelVanecek) - Upgrade react smooth, remove `translateStyle`, remove prop-types as a peerDep - **NOTE**: animations will no longer have browser prefixes on them. Browsers have good support for this (https://caniuse.com/?search=transforms) - Upgrade dev dependencies - Upgrade TypeScript to 4.9.5 (no definition changes from upgrade) #### Storybook - New storybook stories and doc updates #### New Contributors - [@​TRFielder](https://togithub.com/TRFielder) made their first contribution in [recharts/recharts#4088 **Full Changelog**: recharts/recharts@v2.11...v2.12.0 ### [`v2.11.0`](https://togithub.com/recharts/recharts/compare/v2.10.4...36c14c63d271d05b701e1d32ac931de0fd30b360) [Compare Source](https://togithub.com/recharts/recharts/compare/v2.10.4...36c14c63d271d05b701e1d32ac931de0fd30b360) ### [`v2.10.4`](https://togithub.com/recharts/recharts/releases/tag/v2.10.4) [Compare Source](https://togithub.com/recharts/recharts/compare/v2.10.3...v2.10.4) #### What's Changed Fix some older bugs annoying bugs, TS typings, update to the storybook theme, and more ##### Fix - `ResponsiveContainer`: fix `ref.current.current` without breaking users using current implementation by [@​HHongSeungWoo](https://togithub.com/HHongSeungWoo) in [recharts/recharts#4008 - closes [recharts/recharts#3718 - `Brush`: Allow Brush to be controlled with start and end index via state by [@​ckifer](https://togithub.com/ckifer) in [recharts/recharts#4034 - closes [recharts/recharts#2404 - `Legend`: TypeScript - Add the dataKey type to legend props by [@​HHongSeungWoo](https://togithub.com/HHongSeungWoo) in [recharts/recharts#4035 - closes [recharts/recharts#2909 - `Pie`: TypeScript - added `payload` to `PieSectorDataItem` type by [@​PavelVanecek](https://togithub.com/PavelVanecek) in [recharts/recharts#4030 - `Pie`: unique sector keys fix by [@​imagineLife](https://togithub.com/imagineLife) in [recharts/recharts#4009 closes [recharts/recharts#3273 - `RadialBar`: allow className to be passed to Radial Bar background by [@​ckifer](https://togithub.com/ckifer) in [recharts/recharts#4027 - closes [recharts/recharts#4011 ##### Storybook - Storybook: Added Legend component story! by [@​AnujSharma141](https://togithub.com/AnujSharma141) in [recharts/recharts#4039 - Storybook: add controlled brush storybook entry by [@​ckifer](https://togithub.com/ckifer) in [recharts/recharts#4032 - Storybook: Custom Storybook theme for Recharts brand by [@​csdiehl](https://togithub.com/csdiehl) in [recharts/recharts#4016 #### New Contributors - [@​csdiehl](https://togithub.com/csdiehl) made their first contribution in [recharts/recharts#4016 - [@​AnujSharma141](https://togithub.com/AnujSharma141) made their first contribution in [recharts/recharts#4039 **Full Changelog**: recharts/recharts@v2.10.3...v2.10.4 ### [`v2.10.3`](https://togithub.com/recharts/recharts/releases/tag/v2.10.3) [Compare Source](https://togithub.com/recharts/recharts/compare/v2.10.2...v2.10.3) #### What's Changed - Fix non-unique react `key` bug(s) by [@​imagineLife](https://togithub.com/imagineLife) in [recharts/recharts#4006 - closes [recharts/recharts#4004 #### New Contributors - [@​hkmarques](https://togithub.com/hkmarques) made their first contribution in [recharts/recharts#4002 **Full Changelog**: recharts/recharts@v2.10.2...v2.10.3 ### [`v2.10.2`](https://togithub.com/recharts/recharts/releases/tag/v2.10.2) [Compare Source](https://togithub.com/recharts/recharts/compare/v2.10.1...v2.10.2) #### What's Changed Patch some bugs from 2.9 / 2.10 ##### Fix - `Tooltip`: Fix tooltip rendering crash when activeItem is undefined by [@​tran-simon](https://togithub.com/tran-simon) in [recharts/recharts#3982 - `Cursor`: should no longer show gray background on hover where there was none previously [@​HHongSeungWoo](https://togithub.com/HHongSeungWoo) in [recharts/recharts#3992 - `Tooltip`: show tooltip when `data` prop is on individual cartesian component by [@​HHongSeungWoo](https://togithub.com/HHongSeungWoo) in [recharts/recharts#3988 - `LabelList` - TypeScript: LabelList offset prop issue by [@​ckifer](https://togithub.com/ckifer) in [recharts/recharts#3999 ##### Accessibility - `Brush`: set default aria-label and allow value override by [@​enriquetamames-cpi](https://togithub.com/enriquetamames-cpi) in [recharts/recharts#3950 ##### Refactor / Cleanup - Removing some eslint errors for "no array index key" by [@​imagineLife](https://togithub.com/imagineLife) #### New Contributors - [@​tran-simon](https://togithub.com/tran-simon) made their first contribution in [recharts/recharts#3982 - [@​enriquetamames-cpi](https://togithub.com/enriquetamames-cpi) made their first contribution in [recharts/recharts#3950 **Full Changelog**: recharts/recharts@v2.10.1...v2.10.2 ### [`v2.10.1`](https://togithub.com/recharts/recharts/releases/tag/v2.10.1): Patch: Do not include types from test folder [Compare Source](https://togithub.com/recharts/recharts/compare/15328ec11b78968c847b43b646767b7b0c0d9e36...v2.10.1) Fixes [recharts/recharts#3978 **Full Changelog**: recharts/recharts@v2.10...v2.10.1 ### [`v2.10.0`](https://togithub.com/recharts/recharts/compare/v2.9.3...15328ec11b78968c847b43b646767b7b0c0d9e36) [Compare Source](https://togithub.com/recharts/recharts/compare/v2.9.3...15328ec11b78968c847b43b646767b7b0c0d9e36) </details> --- ### Configuration 📅 **Schedule**: Branch creation - "after 4pm every weekday" in timezone Europe/Paris, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/specfy/specfy). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44MS4zIiwidXBkYXRlZEluVmVyIjoiMzcuMjAwLjAiLCJ0YXJnZXRCcmFuY2giOiJjaG9yZS9yZW5vdmF0ZUJhc2VCcmFuY2gifQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
I had this problem for a whole day, it took my sleep, the next day after a lot of research I partially understood the reason for the problem/warning and managed to make it stop I used a trick that may not be the best solution, but at least the warning disappeared I used and on return I used Maybe everyone should try this approach when the problem arises. |
😅 - hoping that this issue doesn't take anyone else's sleep @viniciusrad can you share the code and the data that made the chart throw the key error? You shouldn't have to do that work-around. Does this happen when not using next? |
I am having the same issue, basically I am rendering 2 Scatter datasets because i want the resulting points to be different sizes (and there doesn't seem to be a way to get access to that within the Scatter Cells, or at least not in the documentation). The easiest way to solve this would be to add the key from the parent Scatter component down onto the actual Layer that is wrapping each ScatterPoint render:
This would need to be done in the animation part of the component as well, but this is a pretty big issue at the moment as you can't have 2 different sized datasets without doing some weird transformations on the data. Heres a subset of what I have in my codebase that doesn't work if you want to attempt to recreate:
|
@TimonSotiropoulos feel free to create a PR if you have something that makes sense |
Reproduction link
Steps to reproduce
Open codesandbox and open console, see react non-unique key warnings.
What is expected?
All generated sector elements have a unique key in any case.
What is actually happening?
If
isAnimationActive
is set totrue
all sectors in the pie chart are initially rendered with the same start and end angle and therefore have the same key prop.The text was updated successfully, but these errors were encountered: