如何从 React 中渲染方法之外的函数渲染组件?

海战404

我有一个 React 类,其中我使用了一个名为React CSV的插件,该插件将一组值转换为 CSV 并开始在浏览器中下载新创建的 CSV 文件。

当单击名为“导出”的按钮时,我会调用一个函数。这个函数在渲染函数之外(虽然是同一个 React 类)。该组件在渲染后立即触发 CSV 文件的下载。

我的按钮组件,在 render() 方法中:

    <Button 
        variant="contained" 
        color="secondary"
        onClick={this.exportCSV.bind(this)}
    >
      Export
    </Button>

我在 render 方法之前定义的 exportCSV 函数如下:

      exportCSV(){
    const csvMergedData = this.props.dataA.map((value, index) 
      => ({
            columnA: value,
            columnB: this.props.dataB[index]
    }));
   return (<CSVDownload data={csvMergedData} /> );

}

问题是,CSVDownload 组件未安装/呈现,因此未下载 CSV 文件。

如何渲染组件?

PS:我已经看过其他SO答案,但找不到解决方案。

迪伦

CSVDownload组件没有安装,因为从一个事件处理函数返回的组件不呈现组件。为了渲染一个组件,它需要在 render 方法中。

我建议放入csvMergedData组件的状态并将其初始化为 null:

class YourComponent extends React.Component {
    state = { csvMergedData: null };

然后在您的exportCSV函数中,您可以进行映射并将其保存在状态中:

exportCSV() {
    const csvMergedData = this.props.dataA.map((value, index) => ({
        columnA: value,
        columnB: this.props.dataB[index]
    }));
    this.setState({ csvMergedData });
}

最后在您的渲染方法中,您可以CSVDownload根据状态有条件地渲染组件:

<Button 
    variant="contained" 
    color="secondary"
    onClick={this.exportCSV.bind(this)}
>
  Export
</Button>

{this.state.csvMergedData
    ? <CSVDownload data={this.state.csvMergedData} />
    : null
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何避免在React中重新渲染组件?

来自分类Dev

如何在React中渲染递归组件?

来自分类Dev

如何在 React Native 中使用函数渲染组件

来自分类Dev

React Native FlatList - 在返回组件的渲染方法中调用函数

来自分类Dev

如何在渲染中为React组件设置动画?

来自分类Dev

如何递归地渲染react.js中的子组件

来自分类Dev

如何遍历图像数组并在React组件中渲染它们?

来自分类Dev

如何测试组件在React中渲染了多少次?

来自分类Dev

React:如何将数据渲染到组件中?

来自分类Dev

在React Native中单击按钮时如何渲染组件

来自分类Dev

如何在我的 React 组件中渲染 json?

来自分类Dev

如何在 React 中动态渲染嵌套组件?

来自分类Dev

在 Meteor+React 中,如何在父 React 组件中渲染子 React 组件?

来自分类Dev

如何在React渲染函数中从JSON对象获取值?

来自分类Dev

如何在React TypeScript中渲染异步函数的输出?

来自分类Dev

如何在React渲染函数中从JSON对象获取值?

来自分类Dev

React.js如何重新渲染组件?

来自分类Dev

如何强制 React 组件重新渲染?

来自分类Dev

如何在render方法中渲染组件?

来自分类Dev

如何在React中删除包含子组件的功能化组件的渲染器?

来自分类Dev

如何在react中使用map渲染的组件列表中的特定组件进行修改?

来自分类Dev

React – 如何在另一个已安装的组件中渲染附加组件?

来自分类Dev

React Native 在渲染方法中调用函数

来自分类Dev

如何从外部函数渲染组件

来自分类Dev

React.js如何在组件内部渲染组件?

来自分类Dev

如何测试使用 props 渲染其他组件的 React 组件?

来自分类Dev

react组件的异步渲染,如何设置全局Loading组件?

来自分类Dev

在DOM中渲染React组件

来自分类Dev

在React中渲染组件实例

Related 相关文章

  1. 1

    如何避免在React中重新渲染组件?

  2. 2

    如何在React中渲染递归组件?

  3. 3

    如何在 React Native 中使用函数渲染组件

  4. 4

    React Native FlatList - 在返回组件的渲染方法中调用函数

  5. 5

    如何在渲染中为React组件设置动画?

  6. 6

    如何递归地渲染react.js中的子组件

  7. 7

    如何遍历图像数组并在React组件中渲染它们?

  8. 8

    如何测试组件在React中渲染了多少次?

  9. 9

    React:如何将数据渲染到组件中?

  10. 10

    在React Native中单击按钮时如何渲染组件

  11. 11

    如何在我的 React 组件中渲染 json?

  12. 12

    如何在 React 中动态渲染嵌套组件?

  13. 13

    在 Meteor+React 中,如何在父 React 组件中渲染子 React 组件?

  14. 14

    如何在React渲染函数中从JSON对象获取值?

  15. 15

    如何在React TypeScript中渲染异步函数的输出?

  16. 16

    如何在React渲染函数中从JSON对象获取值?

  17. 17

    React.js如何重新渲染组件?

  18. 18

    如何强制 React 组件重新渲染?

  19. 19

    如何在render方法中渲染组件?

  20. 20

    如何在React中删除包含子组件的功能化组件的渲染器?

  21. 21

    如何在react中使用map渲染的组件列表中的特定组件进行修改?

  22. 22

    React – 如何在另一个已安装的组件中渲染附加组件?

  23. 23

    React Native 在渲染方法中调用函数

  24. 24

    如何从外部函数渲染组件

  25. 25

    React.js如何在组件内部渲染组件?

  26. 26

    如何测试使用 props 渲染其他组件的 React 组件?

  27. 27

    react组件的异步渲染,如何设置全局Loading组件?

  28. 28

    在DOM中渲染React组件

  29. 29

    在React中渲染组件实例

热门标签

归档