第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

在 react.js 中使用 promise 獲取數(shù)據(jù)。狀態(tài)為空。為什么?

在 react.js 中使用 promise 獲取數(shù)據(jù)。狀態(tài)為空。為什么?

翻閱古今 2023-03-24 13:44:29
從 CSV 文件獲取數(shù)據(jù)時(shí)遇到問(wèn)題。這是我的代碼:constructor(props) {        super(props);        this.state = {            data: [],            isLoading: false,        };        console.log(this.state.data) // Data is gone =(    }toCSV(response){        let reader = response.body.getReader();        let decoder = new TextDecoder('utf-8');        return reader.read().then(function (result) {            let data = decoder.decode(result.value);            let results = Papa.parse(data);            let rows = results.data;            return rows;        });    }componentDidMount() {        this.setState({ isLoading: true });        let dataNames;            return fetch('url/someFile.csv')            .then(response => this.toCSV(response))            .then(data => console.log(data)) // Data is here            .then(data => this.setState(                { data: data, isLoading: false }            ));    }fetch 中的輸出:(3) […]0: Array(4) [ "abc", " 1", "aha", … ]1: Array(4) [ "def", "2", "test", … ]2: Array(4) [ "ghi", "3", "something", … ]length: 6構(gòu)造函數(shù)中的輸出:[]length: 0我不明白為什么this.state是空的。我知道 promise 是一個(gè)異步函數(shù),但我認(rèn)為this.setState({ data: data, isLoading: false })會(huì)將數(shù)據(jù)設(shè)置到this.state.data中,然后實(shí)現(xiàn) promise。我在這里找到了這個(gè)解決方案,但我無(wú)法解決這個(gè)問(wèn)題:React: import csv file and parse我也嘗試用JSON 文件來(lái)做,因?yàn)槲艺J(rèn)為問(wèn)題出在我的toCSV 函數(shù)上,但結(jié)果是一樣的....fetchJSON() {        fetch(`someJSONfile.json`)            .then(response => response.json())            .then(response => console.log(response))            .then(data =>                this.setState({                    data: data,                    isLoading: false,                })            )            .catch(error => console.log(error));    }我希望你們中的一個(gè)人可能有一個(gè)想法。謝謝你的時(shí)間 :)
查看完整描述

2 回答

?
拉丁的傳說(shuō)

TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超8個(gè)贊

構(gòu)造函數(shù)將只運(yùn)行一次。使用 React.Component,render() 方法將在狀態(tài)更改時(shí)重新運(yùn)行,檢查它:


render(){

 console.log(this.state);

 return <h1>Hello World</h1>

}


查看完整回答
反對(duì) 回復(fù) 2023-03-24
?
慕少森

TA貢獻(xiàn)2019條經(jīng)驗(yàn) 獲得超9個(gè)贊

你有一個(gè)額外.then的沒(méi)有這個(gè)數(shù)據(jù)。下面的代碼應(yīng)該適合你。


componentDidMount() {

        this.setState({ isLoading: true });

        let dataNames;

            return fetch('url/someFile.csv')

            .then(response => this.toCSV(response))

            .then(data => {

                console.log(data)

                this.setState({ data: data, isLoading: false })

            })

    }

另外,console.log 不在合適的地方,如果你想記錄東西來(lái)檢查它,它應(yīng)該放在 setState 執(zhí)行之后。


查看完整回答
反對(duì) 回復(fù) 2023-03-24
  • 2 回答
  • 0 關(guān)注
  • 288 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)