Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何触发超链接点击偶数-反应组件_Javascript_Reactjs - Fatal编程技术网

Javascript 如何触发超链接点击偶数-反应组件

Javascript 如何触发超链接点击偶数-反应组件,javascript,reactjs,Javascript,Reactjs,在我的react组件中,我尝试单击在以下函数中创建的超链接: getUsers(e){ e.preventDefault(); const { userIds } = this.props; BatchRoleActions.getAllRoleUsers(userIds) .then((users) => { const link = document.createElement('a'); link.setAttribute(

在我的react组件中,我尝试单击在以下函数中创建的超链接:

  getUsers(e){
    e.preventDefault();
    const { userIds } = this.props;
    BatchRoleActions.getAllRoleUsers(userIds)
    .then((users) => {
      const link = document.createElement('a');
      link.setAttribute('id', 'csvLink');
      link.setAttribute('download', 'roles.csv');
      link.setAttribute('href', users);
      document.getElementById('csvLink').onClick();
    });

  }
当函数运行时,我得到以下错误: 承诺类型错误中未捕获:无法读取null的属性“onClick”

如何触发单击开始下载

BatchRoleActions.GetAllRoleUsersUserId返回一个数组,其中包含要导出到csv文件的数据。编码数据:文本/csv;字符集=utf-8,\uFEFF${data}


我正在试图找到解决方案:

编辑1:我误解了OP的要求,现在编辑了我的答案! 编辑2:阅读OP的链接后进行更多编辑

我已经建立了一个沙箱来模拟你的尝试;看看这里-

请注意Users.js文件

我们将在DOM中放置一个可见按钮和一个不可见标记

当用户单击“下载用户数据”按钮时,将发出检索用户的请求

一旦请求解析为用户数据的字符串表示,我们调用setState将用户设置为状态

在setState回调中,我们然后通过编程单击不可见标记下载users.csv;这将触发文件的下载


您将OnClick拼写为大写O,但我们需要更多信息来帮助您,因为您尚未将其插入DOM。无论如何,不要将本机DOM方法与React混合使用…最好的方法是什么?我正在尝试将数据导出到csv文件。atchRoleActions.getAllRoleUsersuserIds返回一个数组,其中包含要导出到csv文件的数据。编码数据:文本/csv;字符集=utf-8,\uFEFF${data};糟糕的是,我误解了你的要求。我已经编辑了我的答案,请看一看!我不希望在渲染时获取用户数据。我希望使用Button中的onClick数据填充我的href,然后调用getUsers函数并开始下载。请参阅我的原始问题中的链接再次编辑我的答案,现在点击按钮获取数据,然后通过向setState callHi Raghudevan提供回调来触发下载。谢谢我开始了一个新的令人兴奋的项目,需要3个开发者。你能加入吗。我怎么联系你?