selectrify

0.0.2 • Public • Published

Selectrify

Because passing callbacks down the component tree is a pain.

import { h, Component, render } from 'preact';
import select from 'selectrify';

class App extends Component {
  state = {
    nameVisible: true,
    name: 'David',
    shoeSize: 9,
    location: 'USA'
  }

  render() {
    return (
      <div class="root">
        <Profile {...select(this, state => { 
          return { name: state.name, nameVisible: state.nameVisible };
        }) } />
      </div>
    );
  }
}

class Profile extends Component {

  toggleName = () => {
    this.props.setState({ nameVisible: !this.props.nameVisible });
  }

  render({ name, nameVisible }) {
    return (
      <div>
        <button onClick={this.toggleName}>Toggle</button>
        {nameVisible && <span>{name}</span>}
      </div>
    )
  }

}

/selectrify/

    Package Sidebar

    Install

    npm i selectrify

    Weekly Downloads

    2

    Version

    0.0.2

    License

    MIT

    Unpacked Size

    1.79 kB

    Total Files

    3

    Last publish

    Collaborators

    • davideast