Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在HTML上安装react应用程序单击按钮_Javascript_Reactjs - Fatal编程技术网

Javascript 如何在HTML上安装react应用程序单击按钮

Javascript 如何在HTML上安装react应用程序单击按钮,javascript,reactjs,Javascript,Reactjs,我试图在单击应用程序外部的按钮(即普通html按钮)时装载react应用程序 下面是我如何设置index.html的: <div id="app"></div> <button id="button-root">Live chat</button> <script src="/dist/rafiki.js"></script> 单击按钮根目录可以控制this.state.visible。请尝试以下操作: buttonRoo

我试图在单击应用程序外部的按钮(即普通html按钮)时装载react应用程序

下面是我如何设置index.html的:

<div id="app"></div>
<button id="button-root">Live chat</button>
<script src="/dist/rafiki.js"></script>
单击按钮根目录可以控制this.state.visible。请尝试以下操作:

buttonRoot.addEventListener('click', () => {
  ReactDOM.render(<Main/>, document.getElementById('app'))
})

如注释中所述,单击按钮时需要触发ReactDOM.render

您的代码可能类似于:

document.getElementById'button-root'。addEventListener'click',=>{ ReactDOM.render,document.getElementById'app'; }; 常量应用==> 骑上

; 使用ReactDOM.render,可以装载React组件

您可以使用以下方法卸载相同的组件:ReactDOM.unmountcomponentatnodeaproot

如果在安装应用程序时只需更改应用程序内部的状态一次,则将其作为道具传递即可:

const appRoot=document.getElementByIdapp; const buttonRoot=document.getElementByIdbutton; const buttonUnmount=document.getElementByIdunmount; const buttonToggle=document.getElementById切换可见; 类应用程序扩展了React.Component{ 构造器{ 超级作物; 此.state={ 可见:道具可见, } } 渲染{ 回来 反应事件

{this.state.visible&&元素在App

} ; } } buttonRoot.addEventListenerclick,=>{ ReactDOM.render,approt; }; buttonUnmount.AddEventListener单击,=>{ ReactDOM.unmountComponentAtNodeappRoot; }; 安装的按钮会起反应 删除React应用程序的按钮
点击按钮调用ReactDOM.render?你能用代码支持你的评论吗?谢谢。试过了,还是不起作用。这里是我拥有的:document.getElementById'button-root'。addEventListener'click',函数{render,document.getElementById'app';};我的目标是在单击按钮时切换应用程序状态。无。没有错误。我猜这是因为可见性是由我的应用程序状态控制的。然后应用程序应该被呈现,但不可见。你能提供一些代码笔或jsfiddler链接吗?你也可以试着把smth渲染得更大,看看它出现在什么地方。试过了,它仍然不能像我期望的那样工作。我的目标是在单击按钮时切换应用程序状态。这是在单击时让按钮挂载和卸载应用程序。是否有办法用按钮控制应用程序状态。@DaveKalu您想从外部与react应用程序通信?是的。具体来说,为了控制国家,非常感谢。我把你的解决方案输入了一个代码沙盒。安装应用程序的按钮起作用,但切换按钮不起作用
buttonRoot.addEventListener('click', () => {
  ReactDOM.render(<Main/>, document.getElementById('app'))
})