如何将CSV读入React Native State Array?

时间:2018-02-13 04:06:43

标签: reactjs csv react-native

我有一个问题:如何将数据从CSV加载到React中的数组中 - 特别是在this.state中作为对象。

让我说我从这开始,其中状态只是硬编码值。

export default class App extends Component<{}> {
  constructor(props) {
    super(props);
    this.state = {
      cards: [
        {itemname: 'Item 1',
          restoname: 'Resto 1',
          url: 'https://res.cloudinary.com/grubhub/image/upload/v1515191165/bkf4niv9okipbc8y6o8h.jpg',
          description: 'Desc 1'},
        {itemname: 'Item 2',
          restoname: 'Resto 2',
          url: 'https://res.cloudinary.com/grubhub/image/upload/v1514060352/twhriy3hvbzayktrjp91.jpg',
          description: 'Desc 2'}
      ]
    };
  }

有没有办法让我读取数据,而不是从CSV中读取数据?

enter image description here

谢谢大家!

2 个答案:

答案 0 :(得分:1)

试试这个npm包。这有助于您将csv转换为json,您可以在反应组件中轻松使用https://www.npmjs.com/package/csvtojson

import csv from 'csvtojson';
const csvFilePath='<path to csv file>';
csv()
.fromFile(csvFilePath)
.on('json',(jsonObj)=>{
    // combine csv header row and csv line to a json object
    // jsonObj.a ==> 1 or 4
})
.on('done',(error)=>{
    console.log('end')
})

答案 1 :(得分:0)

我认为您不能在React Native环境上使用csvtojson
它可以在节点上运行,但不能在Expo上运行,我认为对于RN来说是相同的。

如果仅需要本地数据,则将CSV转换为JSON并导入。无需额外的库。
我认为这是最简单的。

https://stackoverflow.com/a/59746430/1593212