Skip to content

davideast/selectrify

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Selectrify

Because passing callbacks down the component tree is a pain.

Install

npm i selectrify

Example

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>
    )
  }

}

About

Because passing callbacks down the component tree is a pain.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published