单击预览后,如何在我的 React 应用程序上显示第二个和第三个按钮?

Posted

技术标签:

【中文标题】单击预览后,如何在我的 React 应用程序上显示第二个和第三个按钮?【英文标题】:How can I display a second and third button on my React App after the previews one has already been clicked? 【发布时间】:2019-10-24 11:38:01 【问题描述】:

我目前正在构建一个 CSV 文件加载器,它将数据解析为 JSON,它将具有三个不同的按钮,第一个是让我从计算机中选择文件并加载 CSV 数据以进行转换的按钮它到 JSON,之后我需要显示第二个按钮,该按钮允许我连接到 Shopify API,当单击此按钮时,它将向 API 发出获取请求以获取 JSON 数据并将 ID 与文件匹配我上传了,之后它将存储所有匹配的 ID,这是必须显示第三个按钮的时候,这是需要向另一个 API 发出 POST 请求的最后一个按钮。我只需要知道按钮的功能,例如,如何显示一个、存储数据并显示下一个等等。

由于我是编码新手,我现在有点迷茫,我一直在考虑为此设置状态并隐藏按钮(第二个和第三个),问题是我不知道如何在加载数据后显示按钮,而不仅仅是在单击按钮时显示。

我正在使用 react-file-reader NPM 模块将 CSV 渲染为 JSON。

`export default class csvLoader extends Component 
   constructor(props) 
   super(props);
 
 handleFiles = files => 
   let reader = new FileReader();
   reader.onload = function(e) 
     // Use reader.result
     let csv = reader.result;
     let lines = csv.split("\n");
     let result = [];
     let headers = lines[0].split(",");
     for (let i = 1; i < lines.length; i++) 
       let obj = ;
       let currentLine = lines[i].split(",");
       for (let j = 0; j < headers.length; j++) 
      obj[headers[j]] = currentLine[j];
     
     result.push(obj);
    
  //return result; //javascript object
  result = JSON.stringify(result); //JSON
  console.log(result);
 ;
 reader.readAsText(files[0]);
 ;
 render() 
   return (
      <ReactFileReader handleFiles=this.handleFiles fileTypes=".csv">
         <button className="btn btn-primary">Importar CSV</button>
      </ReactFileReader>
    );
  
`

没有错误信息,所有数据都显示在控制台中,Info 不必显示在控制台上,而是存储起来与其他 API 的信息进行比较。

提前致谢!

【问题讨论】:

【参考方案1】:

我相信最好的解决方案是为您的 api 调用创建一个操作,将您的数据传递给 redux,并确保您的组件正在侦听存储中特定数据实体的更改,假设您使用的是 redux。如果不是,那么通过组件状态处理按钮的状态也是最佳的。

【讨论】:

以上是关于单击预览后,如何在我的 React 应用程序上显示第二个和第三个按钮?的主要内容,如果未能解决你的问题,请参考以下文章

单击按钮后,Bootstrap5 模态未在 React.js 中显示

使用 React-Hooks 单击按钮后如何显示不同的组件?

从 YouTube 视频预览

如何在我的 Uppy 自定义设置中获取 Blob 图像预览

单击EditText时如何隐藏键盘不显示

添加数据源后,如何访问?