Comments (10)
I don't personally have a use for it, but I'm assuming it's a feature Preact will need to support. It doesn't fit well into the current model, but that's something I'm already changing.
from preact.
Hi @nightwolfz,
Just return props.children[0]
, no wrapper should be required. In preact, children
is always an Array. This avoids needing to build an API for managing an abstract "maybe array" type. preact-compat
does include the React.Children
for abstracting this if you need them to look identical.
Here's your code with the added [0]
working:
https://jsfiddle.net/developit/jqd96rhv/
Cheers!
from preact.
There is an experimental PR: #703.
from preact.
Thanks @developit
That works if you know that you will only have one child.
Is it possible to return an array of children from the render method without wrapping?
https://jsfiddle.net/cfvcrr7d/1/
from preact.
No, sorry :( - Neither React nor Preact support that. It has to do with tracking DOM Node ownership. I have a few thoughts around how it might be possible to implement, but they are all pretty bloated sadly. In my own work, the couple times I've wanted to do this I actually use a function
instead of a component. Since a lot of my components are just pure functions that take props and return JSX, it's as simple as swapping out <Foo />
for {Foo()}
:
const ITEMS = [1, 2, 3, 4, 5];
const List = () => (
<div>
<h1>list of things:</h1>
<ul>
{ ListItems() }
</ul>
</div>
);
const ListItems = () => (
ITEMS.map( item => <li>{ item }</li> )
);
from preact.
You're right, I incorrectly assumed that React always returns children
as an array as well but this seems not to be the case.
from preact.
@developit sad thing :-) Would be great to get "returning arrays" support.
from preact.
@developit I think Fiber is going to support this. Have you had any thoughts on this since your last reply? We've supported this in the past in Skate and it was quite convenient.
from preact.
Is there anything new? Does 8.2.1 support it?
from preact.
You saved space on a Maybe class definition, which is fixed saving, but every component must have extra 3 letters.
from preact.
Related Issues (20)
- Missing typescript types for MathML HOT 2
- Make render-function curried HOT 5
- Component don't rerender if prop changes in short period of time HOT 3
- 10.18 regression: setState triggers DOMException: Node.insertBefore: Child to insert before is not a child of this node HOT 12
- Radix UI / Select component in preact HOT 1
- `useId` generates duplicate identifiers in some cases when calling `render` from `@preact/compat` multiple times HOT 3
- Request: setProperty() Export HOT 2
- Add `x_google_ignoreList` (Ignore-listing code) support to sourcemaps HOT 11
- Incorporate preact to NEXTJS. HOT 3
- Focus lost when moving child with `key` HOT 3
- [preact/compat] onTouchMoveCapture not processed
- TS errors for contentEditable attribute
- Aliasing React to Preact in Deno HOT 9
- "Cannot read properties of null (reading '__H')" when hydrating a component in the browser HOT 1
- (question)Is there any practical example of purely using CDN? HOT 5
- TypeError: undefined is not an object (evaluating 'this.l[e.type+!1]') HOT 1
- preact+react-modal,Uncaught TypeError: Cannot read properties of null (reading '__H') HOT 9
- Island architecture with partial hydration HOT 3
- preact renders only one iframe if more than one iframe provided to dangerouslySetInnerHTML HOT 2
- When the value of setState remains unchanged, the state-driven controlled component, such as <input/>, seems to no longer be under the influence of the state. HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from preact.