在很多情境下, 我们需要在组件加载完成之后, 进行一些点击操作, 但是我们发现, 在componentDidMount中是不能操作DOM的, 绑定一个0毫秒的定时器就可以, 如下:
componentDidMount: function(){
window.clickMenu = function(){
var hash = window.location.hash;
hash = hash.slice(1); //remove "#"
var targetOpt = $("a[href='"+hash+"']");
if(targetOpt){
if(targetOpt.parent().parent().prev().prop("tagName")=="A"){
var targetParent = targetOpt.parent().parent().prev();
if(targetParent.parent().parent().prev().prop("tagName")=="A"){
var targetGrandpa = targetParent.parent().parent().prev();
targetGrandpa.trigger("click");
targetParent.trigger("click");
targetOpt.trigger("click");
}else{
targetParent.trigger("click");
targetOpt.trigger("click");
}
}else{
targetOpt.trigger("click");
}
}
}
window.setTimeout("clickMenu()",0);
//clickMenu();
},
我们并不认为这是一个很好的解决方法, 但是现在又没能找到其他的相关资料. 不知道大家是怎么处理这个问题的?