javascript - React-Bootstrap 模态渲染两次

标签 javascript reactjs react-bootstrap

我使用了 React-Bootstrap Modal,但不明白为什么 Foo 组件渲染两次?

import { Modal, Button } from 'react-bootstrap';

const Foo = (props) => {
  console.log(‘a’);
  return(
    <div>foo</div>
  )
}

class Example extends Component {
  render() {
    return(
      <Modal show={true}>
        <Foo />
      </Modal>
    )
  }
}

最佳答案

看起来像 Bootstrap 模态在模态进入时设置状态(即使 show 最初设置为 true,如上面所示)。请参阅https://github.com/react-bootstrap/react-bootstrap/blob/master/src/Modal.js#L202-L209 。因此,渲染将被再次触发,导致 Foo 渲染两次。

编辑:您实际上必须一路回到 React-transition-group 才能理解为什么 onEntering 函数实际上被调用。 https://github.com/reactjs/react-transition-group/blob/master/src/Transition.js#L192 。在 componentDidMount 上调用 this.updateStatus,最终调用 onEntering。

关于javascript - React-Bootstrap 模态渲染两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46798963/

相关文章:

javascript - 在 React Native 中将 JSON 数据传递到下一页

javascript - 仅用于 if 的简写

reactjs - enzyme shallowWrapper.setState 不适用于redux 连接组件

reactjs - 在 react-bootstrap <Tab> 标题旁边添加徽章

javascript - 如何为react-bootstrap选项卡组件放置工具提示

javascript - react : How to create a form which gets select data from an API and posts to another API then clears fields on submit?

javascript - 将 props 传递到 React 组件

javascript - 如何在 require.ensure 循环中创建 const ?

javascript - 如何使用 React Bootstrap 和网格水平显示 3 个卡片组件?

javascript - 旋转图像但不旋转 Canvas