【问题标题】:How do I pass in a component in a dialogue box (material-ui), using React?如何使用 React 在对话框(material-ui)中传递组件?
【发布时间】:2020-09-10 02:40:33
【问题描述】:

您好,我正在尝试在对话框中显示图表组件。我很困惑为什么图表没有在对话框内呈现。这是很多代码,所以我不能做沙盒,但我很难找到任何文档来查看应该如何在对话框中引用组件,所以只是缩小问题的范围。如果有兴趣了解更多背景信息,当我单击打开对话框的按钮时,页面上会呈现相同的图表,但我希望图表也出现在对话框中。该组件称为 ResultCharts。它正在正确导入/导出。我对 React 还很陌生。谢谢!

<Dialog open={this.state.openResult} onClose={this.handleClose} aria-labelledby="form-dialog-title">
     <DialogTitle onClose={this.handleClose} id="form-dialog-title">Results</DialogTitle>
     <DialogContent>                        
             <ResultCharts
                  results={ results }
             />
     </DialogContent>
     <DialogActions>
          <Button onClick={this.handleClose} color="primary">
               Cancel
          </Button>
     </DialogActions>
</Dialog>

编辑添加:作为参考,这是打开对话框的按钮的代码。 onClick 中的方法执行显示图表结果的算法(在页面上已正确完成,只是无法让图表显示在对话框内)。再次感谢!

<Button variant="contained" className={classes.button} onClick={this.showResults}>
    Click me!
</Button>

【问题讨论】:

    标签: javascript reactjs dialog modal-dialog material-ui


    【解决方案1】:

    很难确切地说,但我会尝试一些事情:

    1. 检查页面并将鼠标悬停在对话框上以查看图表的 div 是否存在。
    2. 使用 React 调试扩展来查看 ResultChart 组件是否正在呈现。
    3. results 属性是 ResultChart null 还是 undefined?如果它构成了该组件的主体,则它可能会在没有内容的情况下呈现。

    【讨论】:

    • 您好,谢谢!我将使用调试扩展 - 我将它用于 redux 但不适用于反应,感谢您的提示!该对话框确实正确显示文本但没有图表。图表显示正确,但在页面而不是对话框上呈现。图表组件正用于页面上的其他图表。它在那里呈现正确的图表,但不在对话框中。有没有办法覆盖图表应该呈现的位置? (我对 React 很陌生,所以希望这是有道理的!)
    • 我最终解决了它,但不是最好的解决方案。我基本上不得不在该状态下编写一个新函数,而不是使用另一个用于页面图表。但是现在可以了!
    • 很高兴您可以修复它,但您应该能够重用组件。我的预感仍然是它没有在 results 属性中传递正确的数据,或者组件外部存在某种变量,当它在 Dialog 中呈现时,它的范围不正确。
    猜你喜欢
    • 1970-01-01
    • 2021-04-08
    • 2015-11-15
    • 2020-11-23
    • 1970-01-01
    • 2020-09-28
    • 2017-01-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多