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

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

回調(diào)函數(shù)不會(huì)自動(dòng)重新渲染反應(yīng)組件頁(yè)面

回調(diào)函數(shù)不會(huì)自動(dòng)重新渲染反應(yīng)組件頁(yè)面

慕尼黑8549860 2022-11-03 15:03:01
handleAddItem(s) {this.state.items[s.listName].push({name: s.newItem});this.render();} render() {    console.log("re-rendering");    return (      <div className="App">        <AddList addList={this.handleAddList.bind(this)} />        <div id="listsDiv" className="List">          <Lists lists={this.state.lists} items={this.state.items} addItem={this.handleAddItem.bind(this)} />        </div>      </div>    );  }我有一個(gè)名為 handleAddItem() 的回調(diào)函數(shù),由于某種原因,當(dāng)在這個(gè)反應(yīng)組件中調(diào)用 handleAddItem() 函數(shù)時(shí),它不會(huì)自動(dòng)調(diào)用渲染函數(shù)。我不得不手動(dòng)調(diào)用渲染函數(shù),即使那樣,它也沒(méi)有做任何事情。任何人都可以幫助我理解為什么會(huì)發(fā)生這種情況以及我該如何解決它?
查看完整描述

3 回答

?
慕的地10843

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

您正在嘗試直接修改狀態(tài)數(shù)據(jù),但您不能

您必須調(diào)用函數(shù) setState 來(lái)改變(更改)它的任何數(shù)據(jù)的狀態(tài)。

如何?

this.setState({theData: newState})

嘗試直接對(duì)其進(jìn)行修改將具有您當(dāng)前遇到的行為。


查看完整回答
反對(duì) 回復(fù) 2022-11-03
?
莫回?zé)o

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

在反應(yīng)中,您不能直接編輯您的狀態(tài)變量。您必須創(chuàng)建一個(gè)新的臨時(shí)變量,對(duì)其進(jìn)行編輯然后調(diào)用setState()以實(shí)現(xiàn)您想要的并觸發(fā)重新渲染。


所以你的handleAddItem變成:


handleAddItem(s) {

  // Create a copy of items

  const newItems = { ...this.state.items }; // Assuming that items is an object

  // Edit the copy

  newItems[s.listName].push({ name: s.newItem });

  // Call setState

  this.setState({ items: newItems });

}


查看完整回答
反對(duì) 回復(fù) 2022-11-03
?
慕桂英3389331

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

你不應(yīng)該直接改變狀態(tài)。你應(yīng)該打電話setState:


https://reactjs.org/docs/state-and-lifecycle.html#do-not-modify-state-directly


handleAddItem(s) {

  this.setState(({ items }) => {

    const updatedItems = {...items};

    updatedItems[s.listName] = [...updatedItems[s.listName], { name: s.newItem }];

    return {

      items: updatedItems

    };

  });

}


查看完整回答
反對(duì) 回復(fù) 2022-11-03
  • 3 回答
  • 0 關(guān)注
  • 129 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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