New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

react-needs

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-needs

Simple dependency injection library for react

latest
Source
npmnpm
Version
0.4.0
Version published
Weekly downloads
5
-58.33%
Maintainers
1
Weekly downloads
 
Created
Source

react-needs

Simple dependency injection library for react

NPM

Install

npm install --save react-needs

Example Usage

import React, { Component } from 'react'

import { Scope, Need, Want, Offer } from 'react-needs'

import ObservableState from 'observable-react-state'

class CounterState extends ObservableState {
  state = { count: 0 }
  inc() { this.setState({count: this.state.count + 1})}
}
const counter = new CounterState()

class Example extends Component {
  render () {
    return (
      <Scope>
        <h2>Need simple value</h2>
        <Need value="a">{a => <p>{a}</p>}</Need>

        <h2>Need a missing value</h2>
        <Need value="missing">{x => <p>Should <em>not</em> Be rendered since missing in unmet</p>}</Need>

        <h2>Want a missing value</h2>
        <Want value="missing">{missing => <p>Should be rendered since missing in only wanted, not needed.</p>}</Want>

        <h2>Need an observable value (An observable state because it's cool)</h2>
        <Need value="counter">
        {counter =>
          <p>{counter.state.count} <button onClick={() => counter.setState({count: counter.state.count + 1})}>+1</button></p>}
        </Need>

        <Offer name="a" value={100} />
        <Offer value="counter" value={counter}/>
      </Scope>
    )
  }
}

API

<Scope>

Scope must be installed at the root of your app. Offers only exist within a scope.

<Offer name="name" value={value} />

Offer makes a value available within the scope.

<Need value="name">{val => ...}</Need>

Resolves the value name by looking in the Scope for offers. If no offer is found, it will not render its chidlren.

<Need values={['name1', 'name2']}">{(name1, name2)=> ...}</Need>

Resolves all values by looking in the Scope for offers. If value cannot be resolved, it will not render its chidlren.

<Want value="name">{val => ...}</Want>

Resolves the value name by looking in the Scope for offers. If no offer is found, it will not render its chidlren.

<Want values={['name1', 'name2']}">{(name1, name2)=> ...}</Want>

Resolves all values by looking in the Scope for offers. Renders its chidlren even if some of its wanted values could not be found.

That's it. Cheers

License

ISC © allain

FAQs

Package last updated on 10 Apr 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts