亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

關于箭頭函數

//?render函數
render()?{????return?(??????<div?className="TodoList">????????<input?value={this.state.inputValue}?type="text"?onChange={this.handleChange}?/>????????<button?onClick={this.handleClick}>add</button>????????<ul>??????????{????????????this.state.list.map((item,?index)?=>?{??????????????//?get?the?index?of?list,?any?other?great?way?to?solve?this???????????????//?return?<li?key={index}?onClick={this.handleItemClick.bind(this,?index)}>{item}</li>??????????????return?<li?key={index}?onClick={this.handleItemClick(index)}>{item}</li>????????????})??????????}????????</ul>??????</div>????);??}

//?點擊刪除函數
??handleItemClick?=?(index)?=>?{????const?list?=?[...this.state.list];????list.splice(index,?1);????this.setState({??????list:?list????});??}

如果使用箭頭函數的方法,會在添加的時候瞬間刪除,并且拋出index.js:1 Warning: Cannot update during an existing state transition (such as within `render`). Render methods should be a pure function of props and state.的錯誤。

說是是由于引用的子組件,通過props進行傳遞了 ,傳遞的過程中實際上已經處于render階段了 ,在這個階段 如果你再改變這個state值的話,就會包這個錯 。

請問有什么辦法去解決?

正在回答

1 回答

抱歉 上面的格式錯誤 重新傳一下代碼片段

<ul>{
????????????this.state.list.map((item,?index)?=>?{
???????????????return?<li?key={index}?onClick={this.handleItemClick(index)}>{item}</li>????????????
?????????????})??????????
????}????????
</ul>


0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

關于箭頭函數

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號