-
-
Save Surajkamdi/98d80514b1cdcc181d97e68abeac5e4a to your computer and use it in GitHub Desktop.
Ever wanted to join react children like you join an array?
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file is only here to provide the title of the gist |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import React from 'react' | |
import joinChildren from 'react-join-children' | |
import { Item, Separator } from 'justanexample' | |
export default class MyComponent extends React.Component { | |
render () { | |
return <div> | |
{ joinChildren(this.props.items, this.renderItem, this.renderSeparator) } | |
</div> | |
// with 3 items, joinChildren returns [<Item>, <Separator>, <Item>, <Separator>, <Item>] | |
} | |
renderItem = (item, index) => { | |
return <Item key={ index } className="item" /> | |
} | |
renderSeparator = key => { | |
return <Separator className="separator" key={ key } /> | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
export default function (children, render, renderSeparator) { | |
return children.reduce((result, child, index) => { | |
if (index < children.length - 1) { | |
return result.concat([render(child, index), renderSeparator(index + '-separator')]) | |
} | |
return result.concat(render(child, index)) | |
}, []) | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hi, I have read your blog, Its Amazing do you have a dummy project with react integration I want to look at its features and process for the understanding of AEM, I am a beginner in AEM.
Any help will be appreciated
thanks