我有一个问题:如何将数据从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中读取数据?
谢谢大家!
答案 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并导入。无需额外的库。
我认为这是最简单的。