Options
All
  • Public
  • Public/Protected
  • All
Menu

Props: AsyncProps

Context Providers: Controller<AsyncState>

A render-prop component that injects an AsyncLifecycle for any AsyncOperation into the component tree. It executes the given AsyncOperation on mount, and again whenever the given params change. The AsyncState representing the operation is passed to this component's children as the sole parameter. It should be used whenever a component needs asynchronously-loaded data to render, such as search results or an entity from a REST service.

Each instance of Async will own a unique AsyncLifecycle. This way, multiple instances using the same AsyncOperation will not conflict. The component cleans up after itself by destroying the AsyncLifecycle on unmount.

The following example wraps a <SearchResults> component, handling the execution and state management of the asynchronous search call:

// type doSearch = (p1: number, p2: string) => Promise<SearchResults>

<Async operation={doSearch} params={[123, 'abc']}>
  {state =>
    <div>
      {
        // If the Promise is rejected, render the error.
        state.error ? <ErrorMessage error={state.error} />
          // If the Promise resolves, render the SearchResults.
          : state.data ? <SearchResults results={state.data} />
          // If the operation is active, render a loading indicator.
          : state.status === 'active' && <LoadingSpinner />
      }
    </div>}
</Async>

Type parameters

  • Data

  • Params: any[]

  • S

  • SS

  • S

Hierarchy

Index

Constructors

constructor

Properties

asyncLifecycle

asyncLifecycle: AsyncLifecycle<Data, Params>

context

context: any

props

props: Readonly<object> & Readonly<AsyncProps<Data, Params>>

refs

refs: object

Type declaration

  • [key: string]: ReactInstance

state

state: Readonly<S>

Methods

Optional UNSAFE_componentWillMount

  • UNSAFE_componentWillMount(): void

Optional UNSAFE_componentWillReceiveProps

  • UNSAFE_componentWillReceiveProps(nextProps: Readonly<AsyncProps<Data, Params>>, nextContext: any): void

Optional UNSAFE_componentWillUpdate

  • UNSAFE_componentWillUpdate(nextProps: Readonly<AsyncProps<Data, Params>>, nextState: Readonly<S>, nextContext: any): void

Optional componentDidCatch

  • componentDidCatch(error: Error, errorInfo: ErrorInfo): void
  • Catches exceptions generated in descendant components. Unhandled exceptions will cause the entire component tree to unmount.

    Parameters

    • error: Error
    • errorInfo: ErrorInfo

    Returns void

Optional componentDidMount

  • componentDidMount(): void
  • Called immediately after a component is mounted. Setting state here will trigger re-rendering.

    Returns void

Optional componentDidUpdate

  • componentDidUpdate(prevProps: Readonly<AsyncProps<Data, Params>>, prevState: Readonly<S>, snapshot?: SS): void
  • Called immediately after updating occurs. Not called for the initial render.

    The snapshot is only present if getSnapshotBeforeUpdate is present and returns non-null.

    Parameters

    • prevProps: Readonly<AsyncProps<Data, Params>>
    • prevState: Readonly<S>
    • Optional snapshot: SS

    Returns void

Optional componentWillMount

  • componentWillMount(): void

Optional componentWillReceiveProps

  • componentWillReceiveProps(nextProps: Readonly<AsyncProps<Data, Params>>, nextContext: any): void

Optional componentWillUnmount

  • componentWillUnmount(): void
  • Called immediately before a component is destroyed. Perform any necessary cleanup in this method, such as cancelled network requests, or cleaning up any DOM elements created in componentDidMount.

    Returns void

Optional componentWillUpdate

  • componentWillUpdate(nextProps: Readonly<AsyncProps<Data, Params>>, nextState: Readonly<S>, nextContext: any): void

forceUpdate

  • forceUpdate(callBack?: undefined | function): void
  • Parameters

    • Optional callBack: undefined | function

    Returns void

Optional getSnapshotBeforeUpdate

  • getSnapshotBeforeUpdate(prevProps: Readonly<AsyncProps<Data, Params>>, prevState: Readonly<S>): SS | null
  • Runs before React applies the result of render to the document, and returns an object to be given to componentDidUpdate. Useful for saving things such as scroll position before render causes changes to it.

    Note: the presence of getSnapshotBeforeUpdate prevents any of the deprecated lifecycle events from running.

    Parameters

    • prevProps: Readonly<AsyncProps<Data, Params>>
    • prevState: Readonly<S>

    Returns SS | null

render

  • render(): Element

setState

  • setState<K>(state: function | null | S | object, callback?: undefined | function): void
  • Type parameters

    • K: keyof S

    Parameters

    • state: function | null | S | object
    • Optional callback: undefined | function

    Returns void

Optional shouldComponentUpdate

  • shouldComponentUpdate(nextProps: Readonly<AsyncProps<Data, Params>>, nextState: Readonly<S>, nextContext: any): boolean
  • Called to determine whether the change in props and state should trigger a re-render.

    Component always returns true. PureComponent implements a shallow comparison on props and state and returns true if any props or states have changed.

    If false is returned, Component#render, componentWillUpdate and componentDidUpdate will not be called.

    Parameters

    • nextProps: Readonly<AsyncProps<Data, Params>>
    • nextState: Readonly<S>
    • nextContext: any

    Returns boolean

Legend

  • Module
  • Object literal
  • Variable
  • Function
  • Function with type parameter
  • Index signature
  • Type alias
  • Enumeration
  • Enumeration member
  • Property
  • Method
  • Interface
  • Interface with type parameter
  • Constructor
  • Property
  • Method
  • Index signature
  • Class
  • Class with type parameter
  • Constructor
  • Property
  • Method
  • Accessor
  • Index signature
  • Inherited constructor
  • Inherited property
  • Inherited method
  • Inherited accessor
  • Protected property
  • Protected method
  • Protected accessor
  • Private property
  • Private method
  • Private accessor
  • Static property
  • Static method

Generated using TypeDoc