React Beam
Allows children to other parts of the React subtree, and updates
when needed. Originally designed for use with React Router in an app
which has a common element such as a header with a title, where
a component in the page subtree might want to change the title.
Install
npm i @azmenak/react-beam
Api
Receiver
import { Receiver } from 'react-beam';
Props
link:<String>
: a unique ID, used to send children to the correct componentonUpdate:<Function (children)> (optional)
: runs whenever an update is received, with children as the only argumentchildren:<ReactNode> (optional)
: renders child node(s) when the recevied children are null or undefinedstyle:<Object> (optional)
: style will be shallowly mixed in when there is 1 child node, or is applied to a new <span>
root nodeclassName:<String> (optional)
: applied to child node when there is 1 child node, or applied to new <span>
root node
Transmitter
Always renders null.
import { Transmitter } from 'react-beam';
Props
link:<String>
a unique ID, used to send children to the correct componentchildren:<ReactNode>
children to render in the <Receiver />
component
Usage
import React from 'react';
import { Receiver } from 'react-beam';
export class AppHeader extends React.Component {
render() {
return (
<div>
{ // ...other stuff }
<Recevier link="header" />
</div>
);
}
}
import React from 'react';
import { Transmitter } from 'react-beam';
export class SomePage extends React.Component {
render() {
return (
<div>
{ // ...page stuff }
<Transmitter link="header">
<span>Page dependent content</span>
<span>More content</span>
</Transmitter>
</div>
);
}
}