0

我正在管理侧边栏可见性和 React-Table 加载状态,this.state如下所示。(我正在使用 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 buildfirebase deploy.

补充: 对不起。此代码是通过复制和粘贴制作的,以便在此处发布。我犯了一个错误。实际代码中没有这个。请假设 Gatsby 构建过程没有错误。

4

1 回答 1

0

这不正确,因为您放置了this.setStateinrender()方法,这不正确,因为当状态通过 更新时this.setState({...}),再次调用该render()方法

于 2019-03-28T09:43:27.800 回答