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

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

如何使用反應(yīng)鉤子的 useState 存儲(chǔ)具有嵌套對(duì)象的對(duì)象數(shù)組作為屬性?

如何使用反應(yīng)鉤子的 useState 存儲(chǔ)具有嵌套對(duì)象的對(duì)象數(shù)組作為屬性?

不負(fù)相思意 2021-10-29 14:57:12
我正在獲取一組 Expense 對(duì)象,其中包含 2 個(gè)對(duì)象,這些對(duì)象的屬性包含它們自己的一組對(duì)象作為屬性。這是它的樣子:{"expenses": [    {        "id": "5b996064dfd5b783915112f5",        "amount": {            "value": "1854.99",            "currency": "EUR"        },        "date": "2018-09-10T02:11:29.184Z",        "merchant": "Burger King",        "receipts": [],        "comment": "",        "category": "",        "user": {            "first": "Vic",            "last": "Rob",            "email": "Vic@rob.com"        },        "index": 0    },    {        "id": "5b99606474ab17b7820b3922",        "amount": {            "value": "3222.88",            "currency": "GBP"        },        "date": "2018-08-13T07:11:01.680Z",        "merchant": "McD",        "receipts": [],        "comment": "",        "category": "",        "user": {            "first": "craig",            "last": "Michael",            "email": "craig@craig.com"        },        "index": 1    },]現(xiàn)在我想遍歷響應(yīng)數(shù)組并將它們添加到我的鉤子的數(shù)據(jù)變量中,并嘗試執(zhí)行相應(yīng)的操作:  const [data, setData] = useState({expenses:[]}); const Realm = require("realm");useEffect(() => {const fetchData = async () => {  const result = await axios(   'http://localhost:3000/expenses?limit=10&offset=0',  );  writeData(result.data)};fetchData();}, []);const writeData = data =>{Realm.open({schema: [ExpenseSchema, UserSchema, AmountSchema]}).then(realm => {realm.write(() => {  data.expenses.map((expense) => {    realm.create ('expense',expense)   setData ([...data, expense]);  //returns an error. same if i use Object.values(expense)   console.log (expense)    });});});} 當(dāng)我運(yùn)行它時(shí),我收到以下錯(cuò)誤:未處理的承諾拒絕:類型錯(cuò)誤:傳播不可迭代實(shí)例的無(wú)效嘗試我該如何解決這個(gè)問(wèn)題?編輯: 我知道一個(gè)選項(xiàng)是訪問(wèn)對(duì)象屬性并將它們以字符串化的形式存儲(chǔ),但我不想繞過(guò)這個(gè)。有人建議我使用 useReducer,但我是 Hooks 的新手,還沒(méi)有弄清楚減速器如何解決這個(gè)問(wèn)題。如果是這樣,一個(gè)例子將不勝感激。
查看完整描述

1 回答

?
墨色風(fēng)雨

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

忽略我之前的回答,這是因?yàn)槟谧兞恐写鎯?chǔ)了一個(gè)對(duì)象data,但是當(dāng)您嘗試傳播它時(shí),您將其視為一個(gè)數(shù)組。


我建議將費(fèi)用數(shù)組存儲(chǔ)在其自己?jiǎn)为?dú)的狀態(tài)中,因?yàn)槟壳霸谀抢餂](méi)有其他數(shù)據(jù)。


const [data, setData] = useState([]);

應(yīng)該解決你的問(wèn)題。然后替換data.expenses.map用data.map,并writeData(result.data)用writeData(result.data.expenses)。


全部一起:


const [data, setData] = useState([]);

const Realm = require("realm");

useEffect(() => {

  const fetchData = async () => {

    const result = await axios(

        'http://localhost:3000/expenses?limit=10&offset=0',

    );

    writeData(result.data.expenses)

  };

  fetchData();

}, []);


const writeData = data =>{

  Realm.open({

    schema: [ExpenseSchema, UserSchema, AmountSchema]

  }).then(realm => {

    realm.write(() => {

      data.map((expense) => {

        realm.create ('expense',expense)

        setData ([...data, expense]);  //returns an error. same if i use Object.values(expense)

        console.log (expense)

      });

    });

  });


查看完整回答
反對(duì) 回復(fù) 2021-10-29
  • 1 回答
  • 0 關(guān)注
  • 329 瀏覽
慕課專欄
更多

添加回答

舉報(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)