通过单击 ReactJS 中的 Material-UI 浮动操作按钮来切换 Dialogflow 聊天 Window
Toggling a Dialogflow Chat Window by clicking on a Material-UI Floating Action Button in ReactJS
在下面的代码片段中,我试图切换 <ChatWidget />
,这是一个 Dialogflow 聊天 Window,当用户点击默认状态设置为false
。
单击 Material-UI 浮动操作按钮时,它不会将状态切换为 true
。
我正在使用 Material UI v1.0.0-beta34。
这是代码片段:
import React, { Component } from 'react';
import ChatWidget from './ChatWidget';
import FloatingActionButton from './Fab';
class ChatComponent extends Component {
constructor( props ){
super( props )
this.state = { show : false };
this.toggleDiv = this.toggleDiv.bind(this)
}
toggleDiv = () => {
const { show } = this.state;
this.setState( { show : !show } )
}
render() {
return (
<div>
<div>
{ this.state.show && <ChatWidget /> }
</div>
<FloatingActionButton onClick={ this.toggleDiv } />
</div>
);
}
}
export default ChatComponent;
没有点击 FAB 的页面是这样的:
单击 FAB 时所需的功能如下所示:
非常感谢任何有关在单击 <FloatingActionButton />
时切换 <ChatWidget />
的正确方法的帮助或建议。
我找到了解决方案。问题是 <FloatingActionButton />
是我制作的自定义组件。如果我必须让 FloatingActionButton 响应点击,我必须在 Material UI <Button/>
组件本身中添加 OnClick 属性。
有效的修改代码:
import React, { Component } from 'react';
import ChatWidget from './ChatWidget';
import Button from 'material-ui/Button';
const style = {
margin: 0,
top: 'auto',
right: 20,
bottom: 20,
left: 'auto',
position: 'fixed',
backgroundColor:'#E65100',
color:'#FFFFFF',
};
class ChatComponent extends Component {
constructor( props ){
super( props )
this.state = { show : false };
this.toggleDiv = this.toggleDiv.bind(this)
}
toggleDiv = () => {
const { show } = this.state;
this.setState( { show : !show } )
}
render() {
return (
<div>
<div>
{ this.state.show && <ChatWidget /> }
</div>
<Button variant="fab" aria-label="add" style={style} onClick={
this.toggleDiv } >
<i class="fas fa-comment"></i>
</Button>
</div>
);
}
}
export default ChatComponent;
在下面的代码片段中,我试图切换 <ChatWidget />
,这是一个 Dialogflow 聊天 Window,当用户点击默认状态设置为false
。
单击 Material-UI 浮动操作按钮时,它不会将状态切换为 true
。
我正在使用 Material UI v1.0.0-beta34。
这是代码片段:
import React, { Component } from 'react';
import ChatWidget from './ChatWidget';
import FloatingActionButton from './Fab';
class ChatComponent extends Component {
constructor( props ){
super( props )
this.state = { show : false };
this.toggleDiv = this.toggleDiv.bind(this)
}
toggleDiv = () => {
const { show } = this.state;
this.setState( { show : !show } )
}
render() {
return (
<div>
<div>
{ this.state.show && <ChatWidget /> }
</div>
<FloatingActionButton onClick={ this.toggleDiv } />
</div>
);
}
}
export default ChatComponent;
没有点击 FAB 的页面是这样的:
单击 FAB 时所需的功能如下所示:
非常感谢任何有关在单击 <FloatingActionButton />
时切换 <ChatWidget />
的正确方法的帮助或建议。
我找到了解决方案。问题是 <FloatingActionButton />
是我制作的自定义组件。如果我必须让 FloatingActionButton 响应点击,我必须在 Material UI <Button/>
组件本身中添加 OnClick 属性。
有效的修改代码:
import React, { Component } from 'react';
import ChatWidget from './ChatWidget';
import Button from 'material-ui/Button';
const style = {
margin: 0,
top: 'auto',
right: 20,
bottom: 20,
left: 'auto',
position: 'fixed',
backgroundColor:'#E65100',
color:'#FFFFFF',
};
class ChatComponent extends Component {
constructor( props ){
super( props )
this.state = { show : false };
this.toggleDiv = this.toggleDiv.bind(this)
}
toggleDiv = () => {
const { show } = this.state;
this.setState( { show : !show } )
}
render() {
return (
<div>
<div>
{ this.state.show && <ChatWidget /> }
</div>
<Button variant="fab" aria-label="add" style={style} onClick={
this.toggleDiv } >
<i class="fas fa-comment"></i>
</Button>
</div>
);
}
}
export default ChatComponent;