Javascript 在整个长度上作出反应

Javascript 在整个长度上作出反应,javascript,reactjs,svg,css-animations,Javascript,Reactjs,Svg,Css Animations,我想使用react(,但在ReactJS中)设置SVG路径的动画。 为了正确地做到这一点,我需要知道路径的总长度,在JS中,您可以只做path.getTotalLength(),当我的路径由JSX创建时,如何实现相同的长度? 谢谢这是React的裁判派上用场的地方,请参见 基本上,在创建svg时,需要在路径上设置一个ref,然后可以访问该ref(实际上是dom中的元素),并调用getTotalLength() 如果您使用的是es6,字符串引用将被弃用,您实际上可以执行以下操作 <s

我想使用react(,但在ReactJS中)设置SVG路径的动画。 为了正确地做到这一点,我需要知道路径的总长度,在JS中,您可以只做path.getTotalLength(),当我的路径由JSX创建时,如何实现相同的长度?
谢谢

这是React的裁判派上用场的地方,请参见

基本上,在创建svg时,需要在路径上设置一个ref,然后可以访问该ref(实际上是dom中的元素),并调用getTotalLength()

如果您使用的是es6,字符串引用将被弃用,您实际上可以执行以下操作

    <svg><path ref={(ref) => this.path = ref}> </svg>
this.path=ref}>

无论采用哪种方式,后者都是首选方式,如果采用后一种方式,则不会调用
this.refs.path
,而只调用
this.path
,以访问dom节点

在jsx中添加对路径的引用,或者在componentDidMount之后使用reactDOM.findDOMNode(该路径的ReactComponent)
var path = this.refs.path;
var pathLength = path.getTotalLength()
    <svg><path ref={(ref) => this.path = ref}> </svg>