我一直在尝试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');
有人可以引导我通过。 谢谢
答案 0 :(得分:1)
使用
const number = this.count.current;
代替
const number = this.count.current.querySelector('#count');