This is a React component for the Lottie Web Player
- Install package using npm or yarn.
npm install --save @lottiefiles/react-lottie-player- Import package in your code.
import { Player, Controls } from '@lottiefiles/react-lottie-player';- 
Clone repo 
- 
run yarn install 
- 
run yarn storybook 
yarn storybookAdd the element Player and set the src prop to a URL pointing to a valid Lottie JSON.
<Player
  autoplay
  loop
  src="https://assets3.lottiefiles.com/packages/lf20_UJNc2t.json"
  style={{ height: '300px', width: '300px' }}
>
  <Controls visible={true} buttons={['play', 'repeat', 'frame', 'debug']} />
</Player>| Prop | Description | Type | Default | 
|---|---|---|---|
| lottieRef | Get lottie animation object | function | undefined | 
| onEvent | Listen for events | function | undefined | 
| onStateChange | Play state changes | function | undefined | 
| onBackgroundChange | Listen for bg changes | function | undefined | 
| autoplay | Autoplay animation on load. | boolean | false | 
| background | Background color. | string | undefined | 
| controls | Show controls. | boolean | false | 
| direction | Direction of animation. | number | 1 | 
| hover | Whether to play on mouse hover. | boolean | false | 
| loop | Whether to loop animation. | boolean | false | 
| keepLastFrame | Stop animation on the last frame. | boolean | false | 
| renderer | Renderer to use. | `"svg" | "canvas"` | 
| speed | Animation speed. | number | 1 | 
| style | The style for the container. | object | undefined | 
| src(required) | Bodymovin JSON data or URL to JSON. | object | string | 
To call methods on the instance of the Player component. you may get a reference to the component and call the methods on ref.current. This is esentially reacts way of doing a document.getElementById(); You may then use this ref ie: player in the example below to call methods that are described in this documentation. See ref in react documentation
import React from 'react';
import { Player } from '@lottiefiles/react-lottie-player';
class App extends React.Component {
  constructor(props) {
    super(props);
    this.player = React.createRef(); // initialize your ref
  }
  render() {
    return (
      <Player
        ref={this.player} // set the ref to your class instance
        autoplay={false}
        loop={true}
        controls={true}
        src="https://assets3.lottiefiles.com/packages/lf20_XZ3pkn.json"
        style={{ height: '300px', width: '300px' }}
      ></Player>
    );
  }
}
export default App;The lottieRef prop returns the Lottie instance which you can use to set data and call methods as described in the bodymovin documentation.
import React from 'react';
import { Player } from '@lottiefiles/react-lottie-player';
class App extends React.Component {
  constructor(props) {
    super(props);
    this.state = { lottie: null }; // initialize your state
  }
  render() {
    return (
      <Player
        lottieRef={instance => {
          this.setState({ lottie: instance }); // the lottie instance is returned in the argument of this prop. set it to your local state
        }}
        autoplay={false}
        loop={true}
        controls={true}
        src="https://assets3.lottiefiles.com/packages/lf20_XZ3pkn.json"
        style={{ height: '300px', width: '300px' }}
      ></Player>
    );
  }
}
export default App;import React from 'react';
import { Player } from '@lottiefiles/react-lottie-player';
class App extends React.Component {
  constructor(props) {
    super(props);
    this.player = React.createRef();
  }
  doSomething() {
    this.player.current.play(); // make use of the player and call methods
  }
  render() {
    return (
      <Player
        onEvent={event => {
          if (event === 'load') this.doSomething(); // check event type and do something
        }}
        ref={this.player}
        autoplay={false}
        loop={true}
        controls={true}
        src="https://assets3.lottiefiles.com/packages/lf20_XZ3pkn.json"
        style={{ height: '300px', width: '300px' }}
      ></Player>
    );
  }
}
export default App;The following events are exposed and can be listened to via addEventListener calls.
| Name | Description | 
|---|---|
| load | Animation data is loaded. | 
| error | An animation source cannot be parsed, fails to load or has format errors. | 
| ready | Animation data is loaded and player is ready. | 
| play | Animation starts playing. | 
| pause | Animation is paused. | 
| stop | Animation is stopped. | 
| freeze | Animation is paused due to player being invisible. | 
| loop | An animation loop is completed. | 
| complete | Animation is complete (all loops completed). | 
| frame | A new frame is entered. | 
Pause animation play.
Type: void
Start playing animation.
Type: void
Animation play direction.
| Name | Type | Description | 
|---|---|---|
| value | number | Direction values. | 
Type: void
Sets animation play speed.
| Name | Type | Description | 
|---|---|---|
| value | number | Playback speed. | 
Type: void
Stops animation play.
Type: void
Seek to a given frame. Frame value can be a number or a percent string (e.g. 50%).
Type: void
MIT License © LottieFiles.com
