Javascript 在页面刷新中,在react中调用了哪个生命周期方法?
我有一个包含componentA的页面,在componentDidMount循环方法中,我正在更新触发一些动画的状态。但是如果我刷新页面,动画就不会播放。请让我知道如何解决这个问题。下面是我的组件代码Javascript 在页面刷新中,在react中调用了哪个生命周期方法?,javascript,reactjs,ecmascript-6,Javascript,Reactjs,Ecmascript 6,我有一个包含componentA的页面,在componentDidMount循环方法中,我正在更新触发一些动画的状态。但是如果我刷新页面,动画就不会播放。请让我知道如何解决这个问题。下面是我的组件代码 import React from 'react'; import { findDOMNode } from 'react-dom'; import Nav from "../nav/nav-component"; class Mylist extends React.Component{ c
import React from 'react';
import { findDOMNode } from 'react-dom';
import Nav from "../nav/nav-component";
class Mylist extends React.Component{
constructor(props) {
super(props);
this.handleScroll = this.handleScroll.bind(this);
this.state = { animationClass: '' , transform : 12 };
}
componentDidMount() {
window.addEventListener('scroll', this.handleScroll);
this.setState({animationClass:'animate'});
};
componentDidUpdate() {
//this.setState({animationClass:''});
};
componentWillUnmount() {
window.removeEventListener('scroll', this.handleScroll);
this.setState({animationClass:''});
};
handleScroll(event){
const scrollTop = event.srcElement.body.scrollTop,
ele = findDOMNode(this.refs.toggle), // how to get dom element in react
childElements = ele.children,
componentTopPos = ele.getBoundingClientRect();
//itemTranslate = Math.min(0, scrollTop/3 - 60);
console.log("scrollTop",scrollTop);
console.log(childElements);
console.log("componentTopPos",componentTopPos);
console.log(this);
this.setState({
transform: "dsfdf"
});
}
render(){
return (
<div className={'header '+this.state.animationClass}>
<Nav />
</div>
);
}
}
export default Mylist;
从“React”导入React;
从'react dom'导入{findDOMNode};
从“./Nav/Nav组件”导入Nav;
类Mylist扩展了React.Component{
建造师(道具){
超级(道具);
this.handleScroll=this.handleScroll.bind(this);
this.state={animationClass:'',transform:12};
}
componentDidMount(){
window.addEventListener('scroll',this.handleScroll);
this.setState({animationClass:'animate'});
};
componentDidUpdate(){
//this.setState({animationClass:'});
};
组件将卸载(){
window.removeEventListener('scroll',this.handleScroll);
this.setState({animationClass:'});
};
handleScroll(活动){
const scrollTop=event.srcmelement.body.scrollTop,
ele=findDOMNode(this.refs.toggle),//如何在react中获取dom元素
childElements=ele.children,
componentTopPos=ele.getBoundingClientRect();
//itemTranslate=Math.min(0,滚动顶部/3-60);
log(“scrollTop”,scrollTop);
console.log(childElements);
console.log(“componentTopPos”,componentTopPos);
console.log(this);
这是我的国家({
转换:“dsfdf”
});
}
render(){
报税表(
);
}
}
导出默认Mylist;
请记住,componentDidMount只调用一次。刷新页面的次数无关紧要。不会再次调用该方法。在我看来,播放动画的更好方法是在您的本地州设置一个标志,例如“playAnimation:true”,在播放动画后将您的州设置为false。刷新时,状态将再次变为真,动画将再次播放。希望我能帮上忙。页面根本不滚动,还是在没有动画的情况下跳转到目标位置?也许它运行得太早了,页面内容还没有一个高度或什么的?我也在寻找答案,有人吗?componentDIdMount被调用一次,componentWillUpdate被弃用