为什么ref中的ref在这里为空?

时间:2019-05-15 18:45:22

标签: reactjs popmotion

我一直在尝试popmotion pure,因为动画必须使用“ ref”才能使用。
在这里,为什么ref(number)的值为空。

import React from 'react'
import {
  styler,
  tween,
  merge,
  action,
  easing
} from "popmotion";

class Demo extends React.Component {
  constructor(props) {
    super(props)
    this.count = React.createRef();
  }

  componentDidMount() {
    const number = this.count.current.querySelector('#count');
    const updateCounter = (v) => {
      console.log(v)
      return (number.innerHTML = v)
    }

    tween({
      from: 0,
      to: 300,
      flip: Infinity,
      duration: 4000
    }).start(updateCounter);
  }

  render() {

    return ( 
      <div>
        <p  ref={this.count} id='count'></p>
        <div id="ball"></div>
      </div>
    )
  }
}

export default Demo

它返回错误为TypeError: Cannot set property 'innerHTML' of null

但是,如果我使用此文档而不是null,则可以正常工作

 const number = document.querySelector('#count');

有人可以引导我通过。 谢谢

1 个答案:

答案 0 :(得分:1)

使用

const number = this.count.current;

代替

const number = this.count.current.querySelector('#count');

See live example