我想在渲染的DOM上調用$(dom).popover()
。所以我有:ReactJS componentDidMount的行爲與Bootstrap沒有預期的相同
module.exports = React.createClass({
componentDidMount: function() {
$(this.getDOMNode()).popover();
},
render: function() {
return (// My DOM);
}
})
這將返回錯誤:TypeError: $(...).popover is not a function
。但如果我把一個延遲的componentDidMount
,那麼它的工作原理,即:
componentDidMount: function() {
var _this = this;
setTimeout(function() {
$(_this.getDOMNode()).popover();
}, 250);
}
我怎樣才能做到不使用setTimeout
是一回事嗎?
這似乎是'''在您試圖調用它時不會引用jQuery(因此不會返回jQuery對象),或者提供彈出窗口的插件尚未加載。 –
不,'$'可以正常工作,它是無法找到的dom本身。所以'$(...)'是空的。 – Kousha
$(...)'將永遠*返回一個jQuery對象。即使該集合是空的,「popover」方法也會存在。換句話說:'popover'方法的存在並不取決於集合的大小。你得到這個錯誤的事實表明還有其他問題。 –