我正在使用this.state
管理侧边栏可见性和React-Table加载状态,如下所示。
(我正在用React.js,Gatsby和semantic-ui-react建立网站。)
class SidebarRightOverlay extends Component {
constructor(props){
super(props)
this.state = {
visible: false,
loading: true
}
}
componentDidMount(){
this.setState({loading: false})
}
render() {
const toggleVisibility = () => this.setState({ visible: !this.state.visible })
const { visible } = this.state
return (
<div>
<Button onClick={this.toggleVisibility}>Toggle Visibility</Button>
.
.
.
.
这种方式应该是正常的而不是错误的,因为在点击按钮后会出现侧边栏,并且在Chrome和Firefox中加载表格数据后,加载桌面上的显示会消失。
但是,它们在IE11,Edge和wine-IE中不起作用。
我认为this.setState
在IE11,Edge和wine-IE中不起作用。
请告诉我如何让他们工作。
顺便说一句,我测试了由gatsby build
构建并由firebase deploy
部署的网站。
添加: 抱歉。此代码通过复制和粘贴制作,以便在此处发布。我犯了一个错误。实际代码中没有这个。请假设Gatsby构建过程中没有错误。
答案 0 :(得分:0)
这不是正确的,因为您在this.setState
方法中放置了render()
,这不是正确的,因为当通过this.setState({...})
更新状态时,会再次调用render()
方法