關于箭頭函數
//?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值的話,就會包這個錯 。
請問有什么辦法去解決?
2020-07-27
抱歉 上面的格式錯誤 重新傳一下代碼片段