簡體   English   中英

從dom反應元素更改狀態

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM