[英]React element change state from dom
我一直在使用此功能:
window.FindReact = function (dom) {
for (var key in dom) {
if (key.startsWith('__reactInternalInstance$')) {
var compInternals = dom[key]._currentElement;
var compWrapper = compInternals._owner;
var comp = compWrapper._instance;
return comp;
}
}
return null;
};
var someElement = $x("someElement")[0];
window.FindReact(someElement).setState({
hover: true
});
為了將鼠標懸停在我們網站上的元素上,但是從React 16開始,它被錯誤破壞
'VM25001:1未被捕獲的TypeError:無法在window:FindReact(:1:181)處讀取未定義的屬性'_owner':3:18'
我怎樣才能解決這個問題?
您可以在React內部創建從DOM處理狀態的邏輯:
constructor() {
// A function to manipulate the state:
this.changeState = this.changeState.bind(this);
const domElementToManipulateState = document.getElementById('domElement');
domElementToManipulateState.addEventListener('hover', this.changeState);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.