Open chenglou opened 7 years ago
Why don't we throw in an OrderedSet
as keys or something as an experiment?
I'm wondering why we even have to supply keys to React. Is there a reason the reconciler can't make those up?
We can have that; just that it's not clear whether it'll work out yet (not many people understand the semantics of nested arrays keys btw). In the meantime, having children statically typed would be great anyway! We can tackle on OrderedSet
later too.
I'm thinking it's also not worse in terms of verbosity. Right now it's ReactRe.stringToElement
and some others...
@chenglou can you explain the issues with nested arrays?
We use currying for
ref
andkey
already. There might be some phantom types/GADT things we can use here to statically type the fact that childrenkey
exists. More info: https://github.com/reasonml/rehydrate/blob/6808bf1a19e701214e4456967b4aab155d79802c/src/reactRe.re#L60Alternatively, @jordwalke can take the occasion to design this away without needing fancy types, with his OrderedMap idea (jordan can talk more about this).
The benefit is that this is the last feature we need in order to completely bypass createElement (which sets up the key warning, that we currently piggyback on), and make every JSX render twice faster.