javascript - 如何从 React 应用程序外部触发 React 函数
问题描述
我有一个模式,它在加载时将自身附加到非反应页面的 DOM。在该页面上是一个应该启动模式的按钮。我怎么能从那个按钮调用 toggleModal?
索引.html
<body class="page basicpage">
<button class="modal-trigger">Click Here</button>
<div id="spa-root"></div>
</body>
index.js
document.addEventListener('DOMContentLoaded', () => {
const spaContainer = document.createElement('div');
spaContainer.className = "spa-container";
document.body.append(SwSpaContainer);
ReactDOM.render(<App ref={(Modal) => {window['Modal'] = Modal}}/>, spaContainer);
document.querySelector('.modal-trigger').addEventListener('click', ()=>{
console.log(window.Modal.toggleModal);
});
应用程序.js
class App extends React.Component{
constructor(){
super();
this.state = {
isModalOpen: false
}
}
toggleModal = () => {
this.setState(() => {
return {
...this.state,
isModalOpen: true
}
})
};
render() {
return (
<div>
<Modal shouldModalOpen={isModalOpen}/>
</div>
);
}
}
export default App;
解决方案
推荐阅读
- c++ - 如何将元素添加到向量的字符串位置
- swift - 快速铸造
- google-sheets - 使用工作表日期过滤器查询和显示数据
- sql - groupby 和 join 中的最大计数
- android - 如何在没有重复的 recyclerview 中显示 Firebase 数据
- python - 模块“keras.backend”没有属性“tf”
- php - SMTP 错误:无法连接到服务器:无法建立连接,因为目标机器主动拒绝它
- python - Python:初始化二维数组的不同方法给出不同的输出
- php - PHP 读取 .txt 文件并创建一个数组
- python - 具有多个 n 数的时间序列数据预测