-
Notifications
You must be signed in to change notification settings - Fork 47.2k
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
ReactDOMServer.renderToStaticMarkup should not cause 'iterator should have a unique "key" prop' warning #7038
Comments
Yeah, technically true. There were some talks a while back about potentially doing #6618, in which case, There is also something to be said for remaining consistent. If you are writing components that don't specify a key, then your components can't be shared/used with Honestly, this would be pretty low priority for us. If you see an easy fix and want to submit a PR, I'd say it has a 50/50 chance (coin toss) of getting merged, probably depending primarily on complexity. We don't want to introduce any global state or do a whole ton of routing to decide if this warning needs to be emitted. Probably your best bet would be to move the warning to a devtool, and have the devtool become aware of what type of render is being performed. Nested renders would need to be considered. I'm going to close this out because this isn't a clear win for us, and it is almost certainly something that our team would not have the bandwidth to do internally. If someone in the community is passionate about fixing this, we'd take a look at any PRs, but can't make any promises a priori. |
That's fair enough, I wouldn't rate it as high priority either. Thank you for taking the time to respond @jimfb. |
Needed to ensure key is assigned into map result to avoid React error. Seems unnecessary since we don't need the diffing reconciliation for generating static markup, but alas. See: facebook/react#7038
Do you want to request a feature or report a bug?
It's more of a bug -- I don't think this behaviour should occur, but it's not a problem in production.
What is the current behavior?
Warning appears.
If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem via https://jsfiddle.net or similar (template: https://jsfiddle.net/reactjs/69z2wepo/).
Fiddle. I'll paste the code here too, just in case:
What is the expected behavior?
No warning.
Which versions of React, and which browser / OS are affected by this issue? Did this work in previous versions of React?
Fiddle uses React 15.0.1. Tested in Chrome on Ubuntu. I didn't test previous versions of React, but I suspect it's always been this way.
Notes
If I'm not mistaken, the HTML generated via
renderToStaticMarkup
cannot be updated by React because the essential DOM attributes are stripped away. This means thatkey
s should not be necessary because React will never need to match up the elements during a re-render. Supplyingkey
s that will never be used just to avoid a warning is tedious. Ergo, warning should be suppressed when JSX is rendered viarenderToStaticMarkup
.The text was updated successfully, but these errors were encountered: