我開始使用 React,只是將舊的 Web 應用程式轉換為 ReactJS。
我的問題是我加載了一些后來被添加到模態(dangerouslySetInnerHTML)中的內容。內容包括<input type="button" onclick="myFunc()">
以前我只能撰寫一個全域函式 myFunc() 并執行它。但是使用 ReactJS,我不知道該怎么做。如果我只是將此函式寫入組件中,我會得到myFunc is not defined.
有人知道如何解決它嗎?
提前謝謝了
uj5u.com熱心網友回復:
您可以在 react 中撰寫全域函式。在類內部的某個地方,可能在建構式中或在componentDidMount什么地方,只需寫window.myFunc = this.myFunc.bind(this);
uj5u.com熱心網友回復:
我建議使用某種狀態管理工具,如 Context 或 Redux。這樣你就可以設定一個全域函式,可以從應用程式的任何地方執行。
uj5u.com熱心網友回復:
首先,正如評論所建議的那樣,最好在反應中呈現模態,而不是使用危險的SetInnerHTML。然后考慮在反應中,當專案變得非常大時,更喜歡使用狀態管理工具,如上面的答案所暗示的那樣。如果您不考慮使用這樣的工具,最好的做法是將狀態保持在元素樹的頂部并將其向下傳遞(以及對其進行變異的函式)。因此,您的問題的解決方案基本上是定義組件上的函式,該函式保存您想要改變的狀態并將其作為道具傳遞。查看這篇文章了解更多資訊:https : //reactjs.org/docs/faq-functions.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/397639.html
標籤:javascript 反应 功能 按钮 点击
