Как сделать анимированное движение из стороны в сторону с помощью реакции-движения

Я хочу сделать div переходить из стороны в сторону 3 раза после нажатия кнопки. Я могу сделать это, используя код ниже. jsfiddle здесь

var Thing = React.createClass({
  getInitialState: function () {
    return {
      left: 0
    }
  },
  sideToSide: function(count = 1) {
    if (count <= 6) {
      this.setState({ left: this.state.left === 0 ? 45 : 0 })    
      setTimeout(() => {
        this.sideToSide(count + 1)
      }, 200)      
    }     
  },

  render: function() {
    return (
      <div>
        <Motion style={{ left: spring(this.state.left) }}>
          {(a) => (
            <div style={{ marginLeft: a.left }}>
              Moroni 10:3-5
            </div>
          )}
        </Motion>
        <button onClick={() => this.sideToSide()}>side to side</button>
      </div>
    );
  }
});

но мне было интересно, есть ли лучший / другой способ сделать это с помощью реактивного движения, кроме изменения состояния и передачи изменений в <Motion/>, Есть ли такая опция, как передача массива стилей, которые анимируются в такой последовательности (или что-то в этом роде)?

<Motion styles={[
  { marginLeft: '45px' },
  { marginLeft: '0px' },
  { marginLeft: '45px' },
  { marginLeft: '0px' },
  { marginLeft: '45px' },
  { marginLeft: '0px' }
]}>
 {...}
</Motion>

0 ответов

Другие вопросы по тегам