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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么我不能在react.js中更新道具?

為什么我不能在react.js中更新道具?

當年話下 2019-11-18 10:08:03
為什么我們同時擁有state和props?為什么我們不只有一個數(shù)據(jù)源?我想更新組件的組件props,并使其重新呈現(xiàn)其自身及其所有子組件??雌饋砗芎唵?,但我不知道如何讓組件更新其自身或父項的道具。謝謝你的幫助。
查看完整描述

3 回答

?
弒天下

TA貢獻1818條經(jīng)驗 獲得超8個贊

React的哲學是道具應該是不變的并且自上而下的。這意味著父母可以將喜歡的任何道具值發(fā)送給孩子,但是孩子不能修改自己的道具。您要做的是對傳入的道具做出反應,然后根據(jù)需要修改孩子的狀態(tài)。

因此,您永遠不會更新自己的道具或父母的道具。曾經(jīng) 您只能更新自己的狀態(tài),并對父母給您的prop值做出反應。

如果您想讓某個子動作發(fā)生,而該子動作會修改狀態(tài)中的某些內(nèi)容,那么您要做的就是將回調(diào)傳遞給該子動作,該子動作可以在給定的動作上執(zhí)行。然后,此回調(diào)可以修改父級的狀態(tài),從而可以在重新渲染時向子級發(fā)送不同的道具。


查看完整回答
反對 回復 2019-11-18
?
慕的地10843

TA貢獻1785條經(jīng)驗 獲得超8個贊

組件本身會更改其狀態(tài),并且不會更改其自身,而是會更改兒童的道具。


<Parent>

  <Child name={ this.state.childName } />

</Parent>

父母可以更改自己的狀態(tài)并更改孩子的名字,但這會更改其孩子的道具。


edit1:要從子級向父級調(diào)用事件,您應該向子級傳遞一個事件處理程序,如下所示:


var Child = React.createClass({

  render: function() {

    return (<button onClick={ this.props.onClick }>Hey</button>);

  }

});


var Parent = React.createClass({

  onChildClick: console.log.bind(console), // will print the event..

  render: function() {

    return (<Child onClick={ this.onChildClick } />);

  }

});


React.renderComponent(<Parent />, document.body);

在此代碼中,當您單擊“子級”按鈕時,它將把事件傳遞給其父級。傳遞事件的目的是使組件分離。也許在您的應用程序中您需要執(zhí)行此特定操作,但是在另一個應用程序中,您將有不同的用法。

查看完整回答
反對 回復 2019-11-18
  • 3 回答
  • 0 關注
  • 645 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號