Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.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中将参数传递给const函数?_Javascript_Reactjs - Fatal编程技术网

如何在JavaScript中将参数传递给const函数?

如何在JavaScript中将参数传递给const函数?,javascript,reactjs,Javascript,Reactjs,对象csvData有两种填充方式: 使用sampleDataarray 通过单击按钮“加载数据”并从读卡器获取值。结果 在这两种情况下,csvData中的APT列的值应替换为取自Constants.js的数组distance中适当的值。此逻辑在Main.js中实现 样本数据: NUM,APT,COST 1,ERTE,20 2,KJFK,25 3,KJFK,15 执行替换逻辑后,csvData应如下所示: NUM,APT,COST 1,483,20 2,5777,25 3,5777,15 co

对象
csvData
有两种填充方式:

  • 使用
    sampleData
    array

  • 通过单击按钮“加载数据”并从
    读卡器获取值。结果

  • 在这两种情况下,
    csvData
    中的
    APT
    列的值应替换为取自
    Constants.js
    的数组
    distance
    中适当的
    值。此逻辑在
    Main.js
    中实现

    样本数据:

    NUM,APT,COST
    1,ERTE,20
    2,KJFK,25
    3,KJFK,15
    
    执行替换逻辑后,
    csvData
    应如下所示:

    NUM,APT,COST
    1,483,20
    2,5777,25
    3,5777,15
    
    const replacedSampleValues = distances.reduce(
      (acc, d) => {
        const regex = new RegExp(`${d.label}`, 'g')
        return acc.replace(regex, d.value)
      }, sampleData
    );
    
    state={
        csvData: replacedSampleValues
    };
    
    替换逻辑的实现如下所示:

    NUM,APT,COST
    1,483,20
    2,5777,25
    3,5777,15
    
    const replacedSampleValues = distances.reduce(
      (acc, d) => {
        const regex = new RegExp(`${d.label}`, 'g')
        return acc.replace(regex, d.value)
      }, sampleData
    );
    
    state={
        csvData: replacedSampleValues
    };
    
    然后,选项#1(见上文)实现如下:

    NUM,APT,COST
    1,483,20
    2,5777,25
    3,5777,15
    
    const replacedSampleValues = distances.reduce(
      (acc, d) => {
        const regex = new RegExp(`${d.label}`, 'g')
        return acc.replace(regex, d.value)
      }, sampleData
    );
    
    state={
        csvData: replacedSampleValues
    };
    
    但我不知道如何实施选项2。 如何将
    replacedSampleValues
    应用于加载的数据(
    reader.result

    有没有办法更新
    replacedSampleValues
    ,这样我就可以将数组
    reader.result
    sampleData
    作为参数传递

    Constants.js

    export const distances = [
      {label:"KJFK",value:5777},
      {label:"ERTE",value:483}
    ]
    
    import React, { Component } from 'react';
    import { CsvToHtmlTable } from 'react-csv-to-table';
    import ReactFileReader from 'react-file-reader';
    import Button from '@material-ui/core/Button';
    import {distances} from './Constants';
    
    const sampleData = `
    NUM,APT,COST
    1,ERTE,20
    2,KJFK,25
    3,KJFK,15
    `;
    
    const replacedSampleValues = distances.reduce(
      (acc, d) => {
        const regex = new RegExp(`${d.label}`, 'g')
        return acc.replace(regex, d.value)
      }, sampleData
    );
    
    class CSVDataTable extends Component {
    
        state={
          csvData: replacedSampleValues
        };
    
        handleFiles = files => {
            var reader = new FileReader();
            reader.onload =  (e) => {
              // Use reader.result
              this.setState({
                csvData: reader.result   // ???
              })
              this.props.setCsvData(reader.result)
            }
            reader.readAsText(files[0]);
        }
    
        render() {
            return <div>
              <ReactFileReader
                multipleFiles={false}
                fileTypes={[".csv"]}
                handleFiles={this.handleFiles}>
                <Button
                    variant="contained"
                    color="primary"
                >
                    Load data
                </Button>
    
              </ReactFileReader>
              <CsvToHtmlTable
                data={this.state.csvData || sampleData}
                csvDelimiter=","
                tableClassName="table table-striped table-hover"
              />
        </div>
        }
    }
    
    export default CSVDataTable;
    
    Main.js

    export const distances = [
      {label:"KJFK",value:5777},
      {label:"ERTE",value:483}
    ]
    
    import React, { Component } from 'react';
    import { CsvToHtmlTable } from 'react-csv-to-table';
    import ReactFileReader from 'react-file-reader';
    import Button from '@material-ui/core/Button';
    import {distances} from './Constants';
    
    const sampleData = `
    NUM,APT,COST
    1,ERTE,20
    2,KJFK,25
    3,KJFK,15
    `;
    
    const replacedSampleValues = distances.reduce(
      (acc, d) => {
        const regex = new RegExp(`${d.label}`, 'g')
        return acc.replace(regex, d.value)
      }, sampleData
    );
    
    class CSVDataTable extends Component {
    
        state={
          csvData: replacedSampleValues
        };
    
        handleFiles = files => {
            var reader = new FileReader();
            reader.onload =  (e) => {
              // Use reader.result
              this.setState({
                csvData: reader.result   // ???
              })
              this.props.setCsvData(reader.result)
            }
            reader.readAsText(files[0]);
        }
    
        render() {
            return <div>
              <ReactFileReader
                multipleFiles={false}
                fileTypes={[".csv"]}
                handleFiles={this.handleFiles}>
                <Button
                    variant="contained"
                    color="primary"
                >
                    Load data
                </Button>
    
              </ReactFileReader>
              <CsvToHtmlTable
                data={this.state.csvData || sampleData}
                csvDelimiter=","
                tableClassName="table table-striped table-hover"
              />
        </div>
        }
    }
    
    export default CSVDataTable;
    
    import React,{Component}来自'React';
    从“react csv to table”导入{CsvToHtmlTable};
    从“react文件读取器”导入react文件读取器;
    从“@material ui/core/Button”导入按钮;
    从“./常量”导入{distance};
    常量采样数据=`
    数,APT,成本
    1,埃尔特,20岁
    2,肯尼迪,25岁
    3,肯尼迪,15岁
    `;
    const replacedSampleValues=距离。减少(
    (附件d)=>{
    const regex=new RegExp(`${d.label}`,'g')
    返回acc.replace(正则表达式,d.value)
    },样本数据
    );
    类CSVDataTable扩展组件{
    陈述={
    csvData:替换采样值
    };
    handleFiles=文件=>{
    var reader=new FileReader();
    reader.onload=(e)=>{
    //使用reader.result
    这是我的国家({
    csvData:reader.result/???
    })
    this.props.setCsvData(reader.result)
    }
    reader.readAsText(文件[0]);
    }
    render(){
    返回
    加载数据
    }
    }
    导出默认CSVDataTable;
    
    可能重复的我刚才回答了你的问题,我添加了一个关于如何实现这一点的示例。可能重复的我刚才回答了你的问题,我添加了一个关于如何实现这一点的示例。